C#Request请求——可用于WebService

函数

创新互联是一家专注于成都网站设计、网站建设与策划设计,沈阳网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:沈阳等地区。沈阳做网站价格咨询:13518219792

/// 
/// HttpRequest 请求方式
/// 
/// 请求地址
/// 请求Context-Type
/// 请求参数
/// 请求方式
/// 返回请求结果
public string RequestWeb(string webUrl, string contentType, Dictionary 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 dicPara = new Dictionary();
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


本文标题:C#Request请求——可用于WebService
路径分享:http://pwwzsj.com/article/pjodig.html