WebService服务端代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
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(); } } |
客户端调用代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
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配置文件中添加如下节点
1
2
3
4
5
6
7
|
< system.web > < webServices > < protocols > < add name = "HttpPost" /> </ protocols > </ webServices > </ system.web > |
到此这篇关于C#中使用HttpPost调用WebService的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/dotnet261010/p/12660797.html