服务器地址:http://IP/服务名称.asmx/方法名
如http://127.0.0.1/webservice1.asmx/SyncReceiver
参数格式如下
参数名=参数内容,多个参数时用&号连接
参数名1=参数内容&参数名2=参数内容&参数名3=参数内容
需要注意的是上面的参数名和服务上的参数名必须一致,否则会出现500错误
如下面的服务有两个参数分别是pName和json 那么参数的写法如下
pName=myName&json=1234556asdASDF
下面上代码
private string HttpSend()
{
//组参数内容
byte[] bSend = Encoding.UTF8.GetBytes("pName=123&json=789");
//设置访问信息
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://127.0.0.1/webservice1.asmx/SyncReceiver");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";//"text/plain";
//封装数据
request.ContentLength = bSend.Length;
Stream requestStram = request.GetRequestStream();
requestStram.Write(bSend, 0, bSend.Length);
requestStram.Close();
//获取返回数据
WebResponse wr = request.GetResponse();
Stream getStream = wr.GetResponseStream();
byte[] currentChunk = new byte[2048]; // 缓存buffer
int rc = 0; // 每次实际收到的字节数
using (MemoryStream ms = new MemoryStream())
{
while ((rc = getStream.Read(currentChunk, 0, currentChunk.Length)) > 0)
{
ms.Write(currentChunk, 0, rc); // 将当次收到的字节写入流
}
currentChunk = ms.ToArray(); // 将流转换为byte[]
}
request.Abort();
return System.Text.Encoding.Default.GetString(currentChunk);
}
以下页面关键词,内容看上面
C# HttpWebRequest 访问 带参数 Webservice Post WinForm Http