我需要发送以下内容,但最好使用内置的 .NET 类,
HttpClient
。
我尝试使用
Httpclient
、HttpRequestMessage
、HttpResponseMessage
和 SendAsync
,但出现缺少 JSON 的错误。虽然使用 Postman 的相同参数调用它效果很好。
也许我使用了错误的类?
var client = new RestClient("myurl");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("channelId", "mytestid");
request.AddHeader("Authorization", "big access token");
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Accept", "application/json");
request.AddParameter("undefined", "{\n \"jsonrequesthere\":...}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
应该像
一样简单var client = new HttpClient(); // ideally this would be created from IHttpClientFactory
var request = new HttpRequestMessage(HttpMethod.Post, "myurl");
request.Headers.Add("cache-control", "no-cache");
request.Headers.Add("channelId", "mytestid");
request.Headers.Add("Authorization", "big access token");
request.Headers.Add("Accept", "application/json");
request.Content = new StringContent(json, null, "application/json");
// or request.Content = JsonContent.Create(SomeObjectToSerialize);
var response = await client.SendAsync(request);
var result = await response.Content.ReadAsStringAsync();
注意:还有许多其他内置方法可以实现相同的效果。尽管在学习的这个阶段,您最好只阅读文档