修改请求头每个请求c# HttpClient PCL
本文关键字:请求 HttpClient PCL 修改 | 更新日期: 2023-09-27 18:02:06
我目前正在使用System.Net.Http.HttpClient进行跨平台支持。
我读到,为每个请求实例化一个HttpClient对象不是一个好的做法,你应该尽可能重用它。
现在我在为服务编写客户端库时遇到了一个问题。一些API调用需要有一个特定的头,一些必须不包含这个特定的头。
似乎我只能操纵"DefaultRequestHeaders",这将与每个请求发送。
是否有一个选项,当实际发出请求时,例如:"client.PostAsync()"修改头仅为特定的请求?
(信息:请求可以是多线程的)。
提前感谢!
是的,你可以创建一个新的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);
使用HttpContent.Headers。只需创建HttpContent实例,并将其传递给PostAsync方法。