通常的HttpClient类有一个类型为HttpRequestHeaderCollection的属性HttpRequestHeaders.Header的常规用法如下所示.

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客户端的博客都提到了添加,但我没有看到任何一篇提到添加的文章.

推荐答案

这个HttpHeaders类有一个Add方法-注意到正确的类文档的链接-它添加到header集合中.

Append方法是来自LINQ的方法,其中新添加的项只存在于返回的集合中,而不存在于目标DefaultRequestHeaders中.

Append个文档中:

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

Csharp相关问答推荐

Umbraco Lucene日期字段编码转换为.net日期时间

在实际上是List T的 IESEARCH上多次调用First()是否不好?

.NET框架4.7.2项目如何引用.NET Core 2.2库?

不仅仅是一个简单的自定义按钮

应用程序启动器,可 Select 物理屏幕

ASP.NET Core AutoMapper:如何解决错误 CS0121调用在以下方法或属性之间不明确

为基本审计设置Audit.EntityFramework.Core

BlockingCollection T引发意外InvalidOperationException

从另一个不同 struct 的数组创建Newtonsoft.Json.Linq.J数组

异步任务调用程序集

GODOT 4向C#中的字符串参数发送信号以等待

使用System.Text.Json进行序列化时发生StackOverflow异常

如何在onNext之前等待订阅者完成?

在集成测试中可以在模拟InMemory数据库中设定数据种子

实体框架-IsRequired()与OnDelete()

如何从Entity Framework Core中填充ListIInterface

FakeItEasy自动嘲弄内容

为什么我在使用有效令牌的情况下仍未获授权?

ASP.NET核心中的授权,如何在DbContext启动之前提供租用ID

嵌套Blazor组件内的验证