更改 HttpClient 的默认请求标头

Kan*_*bot 7 c# dotnet-httpclient

与我之前的问题有点相关,我有以下问题:

public static HttpClient client= new HttpClient();
//Basic HTTP client setup
  client.BaseAddress = new Uri(address);
  client.DefaultRequestHeaders.Add("custom_header", "MyCustomHeader");
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我设置了一个无法更改的基地址(上一个问题的问题),并且设置了一个自定义标头。

我的问题是我可以稍后在代码中更改此自定义标头(临时或永久)吗?

例如,我希望我的请求具有标题“MyCustomHeader”,但对于某些特定请求,我希望它是“MyOtherHeader”。

这可能吗?如果可能,我该怎么做?

Onu*_*kir 10

据我了解,您想在运行时添加/删除此自定义标头。

您可以添加自定义标头,如下面的代码,

client.DefaultRequestHeaders.Add("custom_header", "MyCustomHeader");
Run Code Online (Sandbox Code Playgroud)

并且,您可以在需要时使用下面的代码删除标头

client.DefaultRequestHeaders.Remove("custom_header");
Run Code Online (Sandbox Code Playgroud)

  • RequestHeader 是 KeyValuePair,并且 KeyValuePair Value 属性是只读的。因此,您应该删除并再次添加另一个值。 (2认同)