public static HttpRspData HttpPost(string url, IDictionary <string, string> param) { //string url = ""; Encoding charset = Encoding.GetEncoding("utf-8"); //IDictionary<string, string> param = new Dictionary<string, string>(); //param.Add("usrid", "10000"); HttpWebResponse resp = CreatePostHttpResponse(url, param, charset); Stream stream = resp.GetResponseStream(); //获取响应的字符串流 StreamReader sr = new StreamReader(stream); //创建一个stream读取流 string html = sr.ReadToEnd(); //从头读到尾,放到字符串html //Console.WriteLine(html); HttpRspData data = JsonPaserWeb.Deserialize <HttpRspData>(html); if (!string.IsNullOrEmpty(data.RspData)) { // 附带附加信息 HttpExtraInfo einfo = JsonPaserWeb.Deserialize <HttpExtraInfo>(data.RspData); data.einfo = einfo; } return(data); }
static HttpRspData PostMForm(string url, IDictionary <string, string> param, byte[] img_data) { string boundary = "-----" + DateTime.Now.Ticks.ToString("x"); byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n"); HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url); wr.ContentType = "multipart/form-data; boundary=" + boundary; wr.UserAgent = "RK_C# 1.2"; wr.Method = "POST"; Stream rs = null; try { rs = wr.GetRequestStream(); } catch { Console.WriteLine("The Web is Disconnected!"); return(null); } string html = null; string item_string = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}"; foreach (string key in param.Keys) { rs.Write(boundarybytes, 0, boundarybytes.Length); string form_item = string.Format(item_string, key, param[key]); //Console.WriteLine(string.Format("key:{0} val:{1}",key,param[key])); byte[] form_item_bytes = System.Text.Encoding.UTF8.GetBytes(form_item); rs.Write(form_item_bytes, 0, form_item.Length); } rs.Write(boundarybytes, 0, boundarybytes.Length); string file_srtring = string.Format("Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n" , "img_data", "image", "image/jpg"); rs.Write(System.Text.Encoding.UTF8.GetBytes(file_srtring), 0, file_srtring.Length); rs.Write(img_data, 0, img_data.Length); byte[] trail = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--"); rs.Write(trail, 0, trail.Length); rs.Close(); WebResponse wresp = null; HttpRspData data = null; try { wresp = wr.GetResponse(); Stream stream2 = wresp.GetResponseStream(); StreamReader reader2 = new StreamReader(stream2); html = reader2.ReadToEnd(); } catch { } finally { if (wresp != null) { wresp.Close(); wresp = null; data = JsonPaserWeb.Deserialize <HttpRspData>(html); if (!string.IsNullOrEmpty(data.RspData)) { // 附带附加信息 HttpExtraInfo einfo = JsonPaserWeb.Deserialize <HttpExtraInfo>(data.RspData); data.einfo = einfo; } } wr.Abort(); wr = null; } return(data); }