附加标头不起作用,而添加则有效

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

通常的

HttpClient
类有一个类型为
HttpRequestHeaderCollection
的属性 HttpRequestHeaders。标头的常规用法如下所示。

httpClient.HttpRequestHeaders.Add("x-tra", "nice");

当然,我们需要检查这样的标头是否已经存在。否则,存在碰撞导致异常的风险。我注意到前面提到的类也有一个方法 Append() ,据我所知,它用于将项目添加到集合中,而不会有冲突的风险。

但是没有...这并没有在集合中给我任何这样的标题。

client.DefaultRequestHeaders.Append(new("x-tra", ["nice", "cozy"]));

这给了我第一个,但没有附加的。

client.DefaultRequestHeaders.Add("x-tra", "nice");
client.DefaultRequestHeaders.Append(new("x-tra", ["cool", "cozy"]));

我做错了什么?该方法在标头上下文中是否有任何用途,或者它是否带有集合概念?所有关于 HTTP 客户端使用的博客都提到添加,但我见过的博客都没有提到附加。

c# http-headers dotnet-httpclient
1个回答
1
投票

那个

HttpHeaders
类有一个 Add 方法 - 请注意正确文档的链接 - 它会添加到标题集合中。

Append
方法是来自 LINQ 的方法,其中新添加的项目仅出现在返回的集合中。

来自

Append
文档:

该方法不会修改集合的元素。相反,它使用新元素创建集合的副本。

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