在做CS调用第三方接口的时候遇到了这样的一个问题,通过PSOTman调试需要分别在parmas、Headers、Body里面同时传递参数。在网上查询了很多资料,以此来记录一下开发脱坑历程。
POSTman调试界面:params参数
POSTman调试界面:Headers参数
POSTman调试界面:Body参数
在postman调试里面可以这么传递参数,那么在后台调用的时候我们改如何写呢。
经过查阅资料得知。params参数可以直接跟在请求的URL地址后面,Headers参数通过request.Headers.Add()方法添加,Body里面需要传递的格式为JSON直接通过JsonConvert.SerializeObject()将对象序列化,将request.ContentType = "application/json",特别注意的是ContentType不能通过request.Headers.Add()方法添加。
public static string getReportsContent(string param, string url, string RandomCode, stringAuthorization)
{byte[] bytes = null;
HttpWebRequest request=(HttpWebRequest)WebRequest.Create(url);//获取请求的方式
request.Method= "post";
request.ContentType= "application/json";
request.Headers.Add("RandomCode", RandomCode);
request.Headers.Add("Authorization", Authorization);
bytes=Encoding.UTF8.GetBytes(param);
request.ContentLength=bytes.Length;
Stream strStream=request.GetRequestStream();
strStream.Write(bytes,0, bytes.Length);
strStream.Close();//获取设置身份认证及请求超时时间
SetWebRequest(request);//就收应答
HttpWebResponse httpResponse =(HttpWebResponse)request.GetResponse();
Stream strStream1= null;
strStream1=httpResponse.GetResponseStream();string responseContent = newStreamReader(strStream1, Encoding.UTF8).ReadToEnd();returnresponseContent;
}
原文:https://www.cnblogs.com/wofeiliangren/p/11282615.html