我们如何向 HTTPCLIENT 对象添加标头参数

问题描述 投票:0回答:2

C# 如何向 HTTPCLIENT 对象添加标头参数 邮递员屏幕截图:

A screen shot of POST-MAN which I'm capable of doing there

我也尝试过以下代码片段,但是没有用。

HttpClient _client = new HttpClient { BaseAddress = new Uri(ServiceBaseURL) };
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
_client.DefaultRequestHeaders.TryAddWithoutValidation("Param1", "Value1");
_client.DefaultRequestHeaders.TryAddWithoutValidation("Param2", "Value2");
_client.DefaultRequestHeaders.TryAddWithoutValidation("Param3", "Value3");

期待帮助。我真的很感谢你的帮助。

c# dotnet-httpclient
2个回答
11
投票

我认为您想要常规

DefaultRequestHeaders
属性而不是
Accept
属性:

_client.DefaultRequestHeaders.Add("Param1", "Value1");

您还可以添加标头作为消息的一部分(如果每个请求这些参数发生更改,请使用这种方式):

using (var message = new HttpRequestMessage(HttpMethod.Post, "/someendpoint"))
{
    message.Headers.Add("Param1", "Value1");
}

1
投票

我认为标头参数是我的代码出现问题的根本原因,但事实并非如此。无论哪种方式都对我有用

 _client.DefaultRequestHeaders.TryAddWithoutValidation("Param1", "Value1"); 
 _client.DefaultRequestHeaders.Add("Param1", "Value1");

再次感谢@maccettura

© www.soinside.com 2019 - 2024. All rights reserved.