zoukankan      html  css  js  c++  java
  • C# http协议Post方式调用WebService

     1         /// <summary>
     2         /// Post方法
     3         /// </summary>
     4         /// <param name="url">webService的URL</param>
     5         /// <param name="method">调用的方法</param>
     6         /// <param name="reqBodys">参数组合</param>
     7         /// <returns></returns>
     8         public static string WebServiceHttpPost(string URL, string Method, List<ReqBody> ReqBodys)
     9         {
    10             string param = string.Empty;
    11             switch (ReqBodys.Count)
    12             {
    13                 case 0:
    14                     break;
    15                 case 1:
    16                     param = HttpUtility.UrlEncode(ReqBodys[0].Key) + "=" + HttpUtility.UrlEncode(ReqBodys[0].Value);
    17                     break;
    18                 default:
    19                     param = HttpUtility.UrlEncode(ReqBodys[0].Key) + "=" + HttpUtility.UrlEncode(ReqBodys[0].Value);
    20                     for (int i = 1; i < ReqBodys.Count; i++)
    21                     {
    22                         param += "&" + HttpUtility.UrlEncode(ReqBodys[i].Key) + "=" + HttpUtility.UrlEncode(ReqBodys[i].Value);
    23                     }
    24                     break;
    25             }
    26             byte[] byteArray = Encoding.UTF8.GetBytes(param);
    27 
    28             HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(URL + "/" + Method);
    29             webRequest.Method = "POST";
    30             webRequest.ContentType = "application/x-www-form-urlencoded";
    31             webRequest.ContentLength = byteArray.Length;
    32             webRequest.GetRequestStream().Write(byteArray, 0, byteArray.Length);       //把参数数据写入请求数据的Stream对象
    33 
    34             HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();      //获得响应
    35 
    36             #region 这种方式读取到的是一个返回的结果字符串 
    37             using(XmlTextReader reader = new XmlTextReader(webResponse.GetResponseStream()))  //获取响应流
    38             {
    39                 reader.MoveToContent();
    40                 return reader.ReadInnerXml();
    41             }
    42             #endregion
    43 
    44             #region 这种方式读取到的是一个Xml格式的字符串
    45             //using(StreamReader sr = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8));
    46             //{
    47             //    return sr.ReadToEnd();
    48             //}
    49             #endregion
    50         }
    365个夜晚,我希望做到两天更一篇博客。加油,小白!
  • 相关阅读:
    善用VS中的Code Snippet来提高开发效率
    c#获取远程文件更新时间
    图解VS2008单元测试及查看代码覆盖率
    常用关于 JavaScript 中的跨域访问方法
    Jquery中使用setInterval和setTimeout
    外链图片也有风险吗?
    设计模式学习总结抽象工厂模式(Abstract Factory Pattern)
    斐波拉杰博弈 取石子(五)
    后缀表达式 NYOJ 257
    杭电 1085 Holding BinLaden Captive!
  • 原文地址:https://www.cnblogs.com/qq2806933146xiaobai/p/15480545.html
Copyright © 2011-2022 走看看