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 }
新闻热点
疑难解答