首页 > 编程学习 > C++ HttpWebRequest发送POST请求,参数以json格式传递

	string PostUrl = "URL";JObject patientinfo = new JObject();patientinfo["name"] = "TOM";patientinfo["age"] = 12;string sendData = JsonConvert.SerializeObject(patientinfo);//eg:  发送Url需要的格式:sendData={"ids":[123],"Name":小黑}string resultData = Post(sendData, PostUrl);

封装Post函数

 public string Post(string parameterData, string serviceUrl, string ContentType = "application/json", string Accept = "application/json"){//先根据用户请求的uri构造请求地址//string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);//创建Web访问对象HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);//把用户传过来的数据转成“UTF-8”的字节流byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);myRequest.Method = "POST";//myRequest.Accept = "application/json";//myRequest.ContentType = "application/json";  // //Content-Type: application/x-www-form-urlencoded myRequest.AutomaticDecompression = DecompressionMethods.GZip;myRequest.Accept = Accept;//myRequest.ContentType = ContentType;myRequest.ContentType = "application/json; charset=UTF-8";myRequest.ContentLength = buf.Length;myRequest.MaximumAutomaticRedirections = 1;myRequest.AllowAutoRedirect = true;//myRequest.Headers.Add("content-type", "application/json");//myRequest.Headers.Add("accept-encoding", "gzip");//myRequest.Headers.Add("accept-charset", "utf-8");//发送请求Stream stream = myRequest.GetRequestStream();stream.Write(buf, 0, buf.Length);stream.Close();//通过Web访问对象获取响应内容HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();//通过响应内容流创建StreamReader对象,因为StreamReader更高级更快StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);//string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾reader.Close();myResponse.Close();return returnData;}

本文链接:https://www.ngui.cc/el/3376917.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000