函数
/// <summary>
/// HttpRequest 请求方式
/// </summary>
/// <param name="webUrl">请求地址</param>
/// <param name="contentType">请求Context-Type</param>
/// <param name="dicPara">请求参数</param>
/// <param name="method">请求方式</param>
/// <returns>返回请求结果</returns>
public string RequestWeb(string webUrl, string contentType, Dictionary<string, string> dicPara = null, string method = "POST")
{
try
{
//创建一个请求项
/*
* url http://localhost:55563/WMSService.asmx/WMSPushService
* url 分为两段
* 第一段 webServices 发布地址 eg:http://localhost:55563/WMSService.asmx
* 第二段 将调用webServices的函数名 eg:WMSPushService
*/
HttpWebRequest request = WebRequest.Create(webUrl) as HttpWebRequest;
//判断服务器是否处理POST的数据
request.ServicePoint.Expect100Continue = method.ToUpper().Equals("POST");
//请求方式
request.Method = method.ToUpper();
//是否建立持久性链接
request.KeepAlive = true;
//设置HTTP头
request.UserAgent = "object.yan";
//设置超时时间
request.Timeout = Int32.MaxValue;
//设置请求标题头
request.ContentType = contentType;
if (dicPara != null)
{
//参数经过URL编码
/*
* webService 请求函数中 所包含的参数 必须在paraUrlCoded中进行拼接
* 【且将参数与值进行URL字符串加密】
* 否则将返回 服务器 500 错误
*/
StringBuilder sbPara = new StringBuilder();
/*
* 循环加载参数信息
*/
foreach (var item in dicPara)
{
if (!string.IsNullOrWhiteSpace(sbPara.ToString()))
{
sbPara.Append("&");
}
sbPara.Append(System.Web.HttpUtility.UrlEncode(item.Key));
sbPara.Append("=" + System.Web.HttpUtility.UrlEncode(item.Value));
}
/*
* 将字符串参数转为二进制数组
* 将其写入请求流中
*/
byte[] paraByte;
//将URL编码后的字符串转化为字节
paraByte = System.Text.Encoding.UTF8.GetBytes(sbPara.ToString());
//设置请求的ContentLength
request.ContentLength = paraByte.Length;
//获得请求流
Stream writer = request.GetRequestStream();
//将请求参数写入流
writer.Write(paraByte, 0, paraByte.Length);
//关闭请求流
writer.Close();
}
/*
* 获取webServices返回信息
*/
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
//读取资源流信息
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet));
//获取html文本
return sr.ReadToEnd();
}
catch (Exception ex)
{
return ex.StackTrace + Environment.NewLine + ex.Message;
}
}
调用函数
Dictionary<string, string> dicPara = new Dictionary<string, string>();
dicPara.Add("logistics_interface", logistics_interface);
dicPara.Add("data_digest", data_digest);
dicPara.Add("warehouseCode", warehouseCode);
RequestWeb("http://localhost:55563/WMSService.asmx/WMSPushService",
"application/x-www-form-urlencoded", dicPara)
调用WebServices时 Context-Type使用
application/x-www-form-urlencoded
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。