c# - 更新添加为 HttpClient 的 DefaultRequestHeaders 的自定义 header 值

标签 c# asp.net-web-api httpclient

我有一个跨请求共享的静态 httpclient,我想向它添加一个自定义 header 。

httpClient.DefaultRequestHeaders.Add("customHeader", somevalue.ToString());

但我注意到,在每个请求中,值都会添加到我打算在每个请求中替换的 header 中。我尝试删除 header (如果它已经存在)并再次添加,但它在负载测试时给我一个错误。

if (httpClient.DefaultRequestHeaders.Contains("customHeader"))
        {
            httpClient.DefaultRequestHeaders.Remove("customHeader");
        }
httpClient.DefaultRequestHeaders.Add("customHeader",somevalue.ToString());

错误 -

System.ArgumentException: An item with the same key has already been added.
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
System.ArgumentNullException: Value cannot be null.

如何更新每个请求的自定义 header 值?

最佳答案

我收到的错误:已添加具有相同键的项目。键:x

mahesh_ing 答案的示例代码:

var request = new HttpRequestMessage
{
    Method = this.method,
    RequestUri = new Uri(this.requestUri),
};

request.Headers.Add("Key", "Value");

var client = new System.Net.Http.HttpClient
{
    Timeout = this.timeout
};

return await client.SendAsync(request);

关于c# - 更新添加为 HttpClient 的 DefaultRequestHeaders 的自定义 header 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156953/

相关文章:

c# - 为什么有些 cookie 在域之前有一个 '.'?

asp.net-web-api - Microsoft Web API : How do you do a Server. MapPath?

java - Apache HttpClient 临时错误 : NoHttpResponseException

c# - 从查询返回列表

c# - 在 C# 中同时编辑 xml 文件

c# - SQL 插入不工作

java - Android - 当模型包含 byte[] 时,Retrofit 被接收为 null

c# - 运行asp.net core api项目时如何在vscode中设置不打开新的Web浏览器选项卡

java - HttpClient 3.x 中的 InputStreamBody 等效项

java - getAttribute ("javax.servlet.request.X509Certificate") 未设置 (Spring,CXF,Jetty,JAX-RSv1.1)