using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; namespace PayService { class HttpUtils { public void post(string url, Dictionary map, StringBuilder result, int timeout = 0) { // 创建httppost. HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; request.ContentType = "application/x-www-form-urlencoded; charset=GBK"; if (timeout > 0) { request.Timeout = timeout * 1000; } Encoding encoding = Encoding.GetEncoding(Const.charset); StringBuilder buffer = new StringBuilder(); int i = 0; foreach (KeyValuePair kvp in map) { if (i > 0) { buffer.AppendFormat("&{0}={1}", kvp.Key, Utils.UrlEncode(kvp.Value, Encoding.GetEncoding(Const.charset))); } else { buffer.AppendFormat("{0}={1}", kvp.Key, Utils.UrlEncode(kvp.Value, Encoding.GetEncoding(Const.charset))); } i++; } //PayService.LogHelper.WriteServiceLog(buffer.ToString()); byte[] postBody = encoding.GetBytes(buffer.ToString()); using (Stream stream = request.GetRequestStream()) { stream.Write(postBody, 0, postBody.Length); } HttpWebResponse response = request.GetResponse() as HttpWebResponse; using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream, Encoding.GetEncoding(Const.charset)); result.Append(reader.ReadToEnd()); } } } }