当前位置: 首页 > 知识库问答 >
问题:

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

阴飞星
2023-03-14

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

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个答案

孙修贤
2023-03-14

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

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

参考HttpHeaders

 类似资料:
  • 问题内容: 我对Node.js相当陌生,遇到了一些问题。 我正在使用Node.js 4.10和Express 2.4.3。 当我尝试访问http://127.0.0.1:8888/auth/facebook时,我将重定向到http://127.0.0.1:8888/auth/facebook_callback。 然后,我收到以下错误: 以下是我的代码: 我可以知道我的代码有什么问题吗? 问题答案:

  • 我们什么时候应该在HttpRequest estMessage对象中使用标头而不是HttpClient中的标头?? 我们需要添加授权(总是在变化)和一些自定义标头(总是在变化) 问题 > 首选哪种方法 我是否应该向HttpClient添加公共头(所有请求都相同),并向HttpRequestMessage对象添加基于请求的头??

  • 问题内容: 我不太确定为什么会收到此错误。这是一个基于express.js的简单API,能够添加和删除帖子。当我触发删除路由器时发生错误。我读到错误通常在有两个回调的情况下发生,但是,我似乎找不到任何双重回调。 这是我的posts.js路由器: 问题答案: 您需要添加“返回”,这样您就不会再次回答。

  • 我对cxf soap头有问题。我使用Contract-firs开发方法建立了一个cxf项目。我想调用带有cxf组件的web服务,如下所示。 我想发送一个pojo消息,抛出一个直接组件作为对ws的请求。我的路线如下所示: 我需要实现这样一个soap头: 为了将其归档,我编写了一个这样的处理器(另请参见http://camel.apache.org/cxf.html): 不幸的是,我在这条语句中得到了

  • 问题内容: 我对Node.js相当陌生,遇到了一些问题。 我正在使用Node.js 4.10和Express 2.4.3。 当我尝试访问http://127.0.0.1:8888/auth/facebook时,我将重定向至http://127.0.0.1:8888/auth/facebook_callback。 然后,我收到以下错误: 以下是我的代码: 我可以知道我的代码有什么问题吗? 问题答案:

  • 所以我看到了一篇很棒的帖子“错误:发送到客户端后无法设置标题,但仍然不明白我的“标题”部分有什么问题,因为当我将它从注释掉的