你可以这样做:
using(var msg = new HttpRequestMessage(HttpMethod.Get, new Uri("https://www.test.com")))
{
msg.Headers.Referrer = new Uri("https://www.example.com");
using (var req = await _httpClient.SendAsync(msg))
{
var str1 = await req.Content.ReadAsStringAsync();
}
}
或者,如果要覆盖默认的请求头,请按以下方式执行:
_httpClient.DefaultRequestHeaders.Referrer = new Uri("https://www.example.com");
var str2 = await _httpClient.GetStringAsync("https://www.test.com/");
第一种方法是如果你想重复使用
HttpClient
在应用程序的整个生命周期中。也就是说,如果您与需要发出HTTP请求的每个对象或方法共享它。如果多个线程试图在每个线程修改头的同时使用它,那么这样做不会导致冲突。
DeafaultRequestHeaders
是
不
线程安全。。。因此,如果有多个线程正在修改
DeafaultRequestHeaders
同时也有财产。