首页 > 解决方案 > 在以下代码中使用 RestSharp 的内置替代方法是什么?

问题描述

我需要发送以下内容,但最好使用内置的 .net 类,HttpClient。

我尝试使用 Httpclient、HttpRequestMessage、HttpResponseMessage 和 SendAsync,但是在使用 Postman 的相同参数调用它时,我得到了丢失 json 的错误。

也许我使用了错误的课程。谢谢

    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);

标签: c#postmanhttprequesthttpclient

解决方案


应该很简单

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();

注意:还有许多其他内置方法可以实现相同的目标。尽管在您学习的这个阶段,您最好只阅读文档

完整的演示在这里


推荐阅读