HttpClient Headers 与 HttpRequestMessage Headers
HttpClient Headers vs HttpRequestMessage Headers
我们什么时候应该在 HttpRequestMessage object 中使用 headers 而不是在 HttpClient 中使用 headers ??
我们需要添加授权(总是在变化)和一些自定义 headers(总是在变化)
问题
- 首选方法是什么?
我应该添加普通的吗
headers(所有请求都相同)到 HttpClient 并请求
基于 headers 到 HttpRequestMessage object ??
//HttpRequestMessage Code
HttpRequestMessage reqmsg =new HttpRequestMessage();
reqmsg.Headers.Authorization =new AuthenticationHeaderValue("some scheme");
reqmsg.Headers.Add("name","value");
//HttpClient Code
HttpClient client =new HttpClient();
client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("some scheme");
client.DefaultRequestHeaders.Add("name", "value");
- Which is the preferred method ? Should i be adding common headers (same across all the requests) to the HttpClient
- and request based headers to the HttpRequestMessage object ??
您的问题 auto-answered 本身。
DefaultRequestHeaders
是任何请求的一部分,这是一个优点,因为您将能够避免自己重复添加一些 header。另一方面,HttpRequestMessage.Headers
将只是该请求的一部分。
什么时候应该使用一个而不是另一个?我将使用两个示例:
我需要在每个请求中发送一个 OAuth 持有者令牌,所以我在 HttpClient.DefaultRequestHeaders
中设置了 Authorization
header,如果我需要刷新令牌,我只需要在那里重新设置即可。
我需要根据某些条件发送序列化为 JSON 或 XML 的实体。也就是说,我将在 per-request 基础上设置 Content-type
header。
我们什么时候应该在 HttpRequestMessage object 中使用 headers 而不是在 HttpClient 中使用 headers ??
我们需要添加授权(总是在变化)和一些自定义 headers(总是在变化)
问题
- 首选方法是什么?
我应该添加普通的吗 headers(所有请求都相同)到 HttpClient 并请求 基于 headers 到 HttpRequestMessage object ??
//HttpRequestMessage Code HttpRequestMessage reqmsg =new HttpRequestMessage(); reqmsg.Headers.Authorization =new AuthenticationHeaderValue("some scheme"); reqmsg.Headers.Add("name","value"); //HttpClient Code HttpClient client =new HttpClient(); client.DefaultRequestHeaders.Authorization =new AuthenticationHeaderValue("some scheme"); client.DefaultRequestHeaders.Add("name", "value");
- Which is the preferred method ? Should i be adding common headers (same across all the requests) to the HttpClient
- and request based headers to the HttpRequestMessage object ??
您的问题 auto-answered 本身。
DefaultRequestHeaders
是任何请求的一部分,这是一个优点,因为您将能够避免自己重复添加一些 header。另一方面,HttpRequestMessage.Headers
将只是该请求的一部分。
什么时候应该使用一个而不是另一个?我将使用两个示例:
我需要在每个请求中发送一个 OAuth 持有者令牌,所以我在
HttpClient.DefaultRequestHeaders
中设置了Authorization
header,如果我需要刷新令牌,我只需要在那里重新设置即可。我需要根据某些条件发送序列化为 JSON 或 XML 的实体。也就是说,我将在 per-request 基础上设置
Content-type
header。