【问题标题】:How can I pass header and parameter with HttpClient in .NET Core如何在 .NET Core 中使用 HttpClient 传递标头和参数
【发布时间】:2022-01-26 15:06:03
【问题描述】:

这是我使用 RestSharp 库的代码:

var client = new RestClient("https://example.com/api");
client.Timeout = -1;

var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer token...");
request.AddHeader("Content-Type", "text/plain");
request.AddParameter("text/plain", "{{\"post\":{{\"contact\":{{\"isActive\":true,\"phone\":\"99999999\"}}", ParameterType.RequestBody);

IRestResponse response = await client.ExecuteAsync(request);
// Console.WriteLine(response.Content);
// var res = response.Content;

如何使用最佳实践将其转换为 HttpClient

【问题讨论】:

  • 不是http客户端,请修正标题

标签: .net-core asp.net-core-webapi dotnet-httpclient restsharp


【解决方案1】:

你可以用这个:

var client = new HttpClient()
{
    BaseAddress = new Uri("https://example.com"),
    Timeout = TimeSpan.FromMinutes(5) //default is 90 seconds
};

client.DefaultRequestHeaders.Add("Authorization", "Bearer token...");
var body = new StringContent("{{\"post\":{{\"contact\":{{\"isActive\":true,\"phone\":\"99999999\"}}",Encoding.UTF8, "text/plain");

var response = await client.PostAsync("api", body);

var responseString = await response.Content.ReadAsStringAsync();

为了以正确的方式使用HttpClient,我强烈建议您查看link

【讨论】:

  • 我建议在 StringContent 构造函数中指定内容类型,而不是将其添加为标题。
  • 是的,您的正确答案已更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2022-07-05
  • 2020-04-14
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多