我有一個靜態的httpclient跨請求共享,我想添加一個自定義標題。更新爲HttpClient DefaultRequestHeaders添加自定義標頭值
httpClient.DefaultRequestHeaders.Add("customHeader", somevalue.ToString());
但我注意到在每個請求中,值都被添加到我打算在每個請求中替換的頭部。我嘗試刪除標題,如果它已經存在,並再次添加,但它給我一個錯誤負載測試。
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.
我怎麼可以更新每個請求的自定義頭值?
不要將它添加到'DefaultRequestHeaders',但實際要求本身? – Icepickle
同時使用HttpClient.DefaultRequestHeaders對象(併發)將導致問題。你應該通過HttpRequestMessage管理標題。 – levent