你的位置:首页 > ASP.net教程

[ASP.net教程]C# Post方式传输报文,和处理响应


 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     }