用于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();
}

用于json的Http post和get

我假设您使用HttpClient类。这个类有一个叫做DefaultRequestHeaders的性质。此属性中的所有头信息应随您对实例执行的每个请求一起发送。

httpClient.DefaultRequestHeaders.Add("SIGNATURE", "your value");

你必须在请求蒸汽工作之前移动报头,因为请求流正在添加正文。

Webrequest是在内部实现的,在写Body finish with Header之前,一旦它变成流格式,它就准备好发送了。

在反射器或类似的反编译工具中实现webrequest,你可以找到逻辑