我有一个跨请求共享的静态 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/