首页 > 学院 > 开发设计 > 正文

C#Post方式传输报文,和处理响应

2019-11-14 13:31:58
字体:
来源:转载
供稿:网友
 1   public string DoPost(string url, string data) 2         { 3             HttpWebRequest req = GetWebRequest(url, "POST"); 4             byte[] postData = Encoding.UTF8.GetBytes(data); 5             Stream reqStream = req.GetRequestStream(); 6             reqStream.Write(postData, 0, postData.Length); 7             reqStream.Close(); 8             HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); 9             Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);10             return GetResponseAsString(rsp, encoding);11         }12 13         public HttpWebRequest GetWebRequest(string url, string method)14         {15             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);16             req.ServicePoint.Expect100Continue = false;17             req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";18             req.ContentType = "text/json";19             req.Method = method;20             req.KeepAlive = true;21             req.UserAgent = "mysoft";22             req.Timeout = 1000000;23             req.PRoxy = null;24             return req;25         }26 27         public string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)28         {29             StringBuilder result = new StringBuilder();30             Stream stream = null;31             StreamReader reader = null;32             try33             {34                 // 以字符流的方式读取HTTP响应35                 stream = rsp.GetResponseStream();36                 reader = new StreamReader(stream, encoding);37                 // 每次读取不大于256个字符,并写入字符串38                 char[] buffer = new char[256];39                 int readBytes = 0;40                 while ((readBytes = reader.Read(buffer, 0, buffer.Length)) > 0)41                 {42                     result.Append(buffer, 0, readBytes);43                 }44             }45             finally46             {47                 // 释放资源48                 if (reader != null) reader.Close();49                 if (stream != null) stream.Close();50                 if (rsp != null) rsp.Close();51             }52 53             return result.ToString();54         }

 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表