我们什么时候应该在HttpClient中的头文件中使用HttpRequestMessage对象中的头文件?
我们需要添加授权(始终更改)和少量自定义标头(始终更改)
问题
我应该加入常见的 HttpClient和请求的标头(在所有请求中相同) 基于HttpRequestMessage对象的头文件??
//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");
答案 0 :(得分:11)
- 哪种方法首选?我应该在HttpClient
中添加公共标题(在所有请求中都相同)- 并将基于请求的标头发送到HttpRequestMessage对象??
醇>
您的问题会自动自动回答。
DefaultRequestHeaders
是任何请求的一部分,这是一个加号,因为您将能够避免重复自己再次添加一些标题。另一方面,HttpRequestMessage.Headers
只是该请求的一部分。
什么时候应该使用另一个?我将使用两个例子:
我需要在每个请求中发送OAuth承载令牌,因此我在Authorization
中设置HttpClient.DefaultRequestHeaders
标头,如果我需要刷新令牌,我只需要再次设置它。
我需要发送一个序列化为JSON或XML的实体,具体取决于某些条件。也就是说,我将在每个请求的基础上设置Content-type
标头。