我目前正在使用System.Net.Http.HttpClient来提供跨平台支持。
我读到为每个请求实例化一个HttpClient对象并不是一个好的实践,您应该尽可能地重用它。
现在,我在为服务编写客户端库时遇到了一个问题。有些API调用需要有特定的头部,有些则不能包含这个特定的头部。
似乎我只能操作将随每个请求一起发送的"DefaultRequestHeaders“。
当实际使用"client.PostAsync()“发出请求时,是否有一个选项可以只修改特定请求的头部?
(信息:请求可以是多线程的)。
提前感谢!
发布于 2014-05-07 23:39:12
可以,您可以创建一个新的HttpRequestMessage,设置所需的所有属性,然后将其传递给SendAsync。
var request = new HttpRequestMessage() {
RequestUri = new Uri("http://example.org"),
Method = HttpMethod.Post,
Content = new StringContent("Here is my content")
}
request.Headers.Accept.Add(...); // Set whatever headers you need to
var response = await client.SendAsync(request);发布于 2014-05-07 23:43:16
使用HttpContent.Headers。只需创建具有所需标头HttpContent实例并将其传递给PostAsync方法即可。
https://stackoverflow.com/questions/23521626
复制相似问题