
调用方法如下
Hashtable ht = new Hashtable();
ht.Add("LoginName", "Admin");
ht.Add("Password", "Password");
ht.Add("Aey", "123");
var data = HttpHelper.WebServiceGet("http://localhost/OpenApi/MobileService.asmx", "Login", ht);
以下是 HTTP POST 请求和响应示例。所显示的占位符需替换为实际值。
POST /OpenApi/MobileService.asmx/Login HTTP/1.1
Host: gps.szwearable.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
LoginName=string&Password=string&Aey=stringHTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<boolean xmlns="http://tempuri.org/">boolean</boolean>
以上POST示例相应代码如下
/// <summary>
/// 需要WebService支持Post调用
/// </summary>
public static string PostWebService(String URL, String MethodName, Hashtable ht)
{
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL + "/" + MethodName);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
// 凭证
request.Credentials = CredentialCache.DefaultCredentials;
//超时时间
request.Timeout = 10000;
var PostStr = HashtableToPostData(ht);
byte[] data = System.Text.Encoding.UTF8.GetBytes(PostStr);
request.ContentLength = data.Length;
Stream writer = request.GetRequestStream();
writer.Write(data, 0, data.Length);
writer.Close();
var response = request.GetResponse();
var stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream, Encoding.UTF8);
String retXml = sr.ReadToEnd();
sr.Close();
return retXml;
}
private static String HashtableToPostData(Hashtable ht)
{
StringBuilder sb = new StringBuilder();
foreach (string k in ht.Keys)
{
if (sb.Length > 0)
{
sb.Append("&");
}
sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(ht[k].ToString()));
}
return sb.ToString();
}
调用方法如下
在Web.config,那么只需要修改或添加这么一段
<webServices>
<protocols>
<add/>
<add/>
</protocols>
</webServices>
还有一个说是动态添加,可惜我还是没有用成功
附上此动态调用代码
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-65451-6.html
为何有关部门不出来表态