網站首頁 編程語言 正文
WebService服務端代碼
public class WebServiceDemo : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string Sum(string param1, string param2) { int num1 = Convert.ToInt32(param1); int num2 = Convert.ToInt32(param2); int sum = num1 + num2; return sum.ToString(); } }
客戶端調用代碼
class Program { static void Main(string[] args) { Program program = new Program(); string url = "http://localhost:12544/WebServiceDemo.asmx"; string method = "Sum"; string num1 = "1"; string num2 = "2"; string result = program.HttpPostWebService(url, method, num1, num2); Console.WriteLine(result); Console.ReadKey(); } public string HttpPostWebService(string url,string method,string num1,string num2) { string result = string.Empty; string param = string.Empty; byte[] bytes = null; Stream writer = null; HttpWebRequest request = null; HttpWebResponse response = null; param = HttpUtility.UrlEncode("param1") + "=" + HttpUtility.UrlEncode(num1) + "&" + HttpUtility.UrlEncode("param2") + "=" + HttpUtility.UrlEncode(num2); bytes = Encoding.UTF8.GetBytes(param); request = (HttpWebRequest)WebRequest.Create(url + "/" + method); request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; try { writer = request.GetRequestStream(); //獲取用于寫入請求數據的Stream對象 } catch (Exception ex) { return ""; } writer.Write(bytes, 0, bytes.Length); //把參數數據寫入請求數據流 writer.Close(); try { response = (HttpWebResponse)request.GetResponse(); //獲得響應 } catch (WebException ex) { return ""; } #region 這種方式讀取到的是一個返回的結果字符串 Stream stream = response.GetResponseStream(); //獲取響應流 XmlTextReader Reader = new XmlTextReader(stream); Reader.MoveToContent(); result = Reader.ReadInnerXml(); #endregion #region 這種方式讀取到的是一個Xml格式的字符串 //StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); //result = reader.ReadToEnd(); #endregion response.Dispose(); response.Close(); //reader.Close(); //reader.Dispose(); Reader.Dispose(); Reader.Close(); stream.Dispose(); stream.Close(); return result; } }
如果遇到調用時報錯,可以嘗試在WebService的web.config配置文件中添加如下節點
<system.web> <webServices> <protocols> <add name="HttpPost" /> </protocols> </webServices> </system.web>
原文鏈接:https://www.cnblogs.com/dotnet261010/p/12660797.html
相關推薦
- 2022-04-12 Http 請求常見狀態碼報錯(200/404/500)
- 2022-03-26 在ASP.Net?Core應用程序中使用Bootstrap4_實用技巧
- 2022-07-16 ssh遠程連接docker
- 2022-01-09 uview 使用scroll-view以及swiper 做tabs
- 2022-12-07 C++中new的用法及說明_C 語言
- 2022-08-08 python中Pytest常用的插件_python
- 2022-07-20 python密碼學列置換密碼學習_python
- 2022-04-11 SQL?Server的觸發器你了解多少_MsSql
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支