用于json的Http post和get
本文关键字:get post Http json 用于 | 更新日期: 2023-09-27 18:06:08
我怎么能使一个HTTP请求和发送Json数据与报头和读取响应?
第三方已经提供了使用其API的凭据。使用这些凭据,我需要调用API并读取响应。我需要发送一个名为签名的标头以及请求数据。签名的值为加密后的请求数据。
我可以做POST请求,但不知道如何添加Header。
我的代码是这样的
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("URL");
httpWebRequest.ContentType = "text/json";
httpWebRequest.Method = "POST";
httpWebRequest.Headers.Add("SIGNATURE", sEncrypteddata)
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "{'"id'":'"2423432432'"," +
"'"uid'":'"id123'","+
"'"pwd'":'"pass'","+
"'"apiKey'":'"2423432432'","+
"'"paymentCategory'":0"+
"'"paymentType'":0}";
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
System.Net.ServicePointManager.Expect100Continue = false;
HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
string result = streamReader.ReadToEnd();
}
我假设您使用HttpClient
类。这个类有一个叫做DefaultRequestHeaders
的性质。此属性中的所有头信息应随您对实例执行的每个请求一起发送。
httpClient.DefaultRequestHeaders.Add("SIGNATURE", "your value");
你必须在请求蒸汽工作之前移动报头,因为请求流正在添加正文。
Webrequest是在内部实现的,在写Body finish with Header之前,一旦它变成流格式,它就准备好发送了。
在反射器或类似的反编译工具中实现webrequest,你可以找到逻辑