提问者:小点点

C#将自定义标头设置为httpclient会导致错误,因为标头名称被误用


我正在尝试设置如下自定义标题

x-my-header:somecustomval
content-type:application/vnd.status+json
.
.
.
other headers

我尝试了两种方法,使用标题字典

#1

_httpClient.DefaultRequestHeaders.Clear();

foreach (var h in headers)
{
  _httpClient.DefaultRequestHeaders.Add(h.Key.ToString(), h.Value.ToString());
}

#2

HttpRequestMessage req = new HttpRequestMessage();

foreach (var h in headers)
{
  req.Headers.Add(h.Key.ToString(), h.Value.ToString());
}

我在这两种方法中得到的错误是:

标题名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpResponseMessage一起使用,内容标头与HttpContent对象一起使用。

如何在C#net core 3.1的HttpClient中设置帖子的标题?不能设置自定义标题吗?


共1个答案

匿名用户

使用HttpHeaders。在任何一次尝试中使用TryAddWithoutValidation方法。

内部默认的HttpHeaders。Add将尝试验证您是否正在添加已知的HTTP标头,如果无效,将失败。

参考HttpHeaders