我注意到在修改HttpClient.DefaultRequestHeaders时,使用HttpClient并不线程安全,但我希望尽可能多地发出请求。每个请求都需要自定义标头(另外两个标头始终相同)。此外,URL会略有变化。
目前,我为每个请求创建一个新的HttpClient,但是我觉得创建10k+ HttpClients并不是最好的选择。
我想创建一个具有2个DefaultRequestHeaders的静态HttpClient,并将其用于每个请求,但也要添加一个自定义标头。
我希望尽可能快地完成这个过程,所以如果您有其他方法,请告诉我。
目前,我为每个请求创建一个新的HttpClient,但是我觉得创建10k+ HttpClients并不是最好的选择。
我想创建一个具有2个DefaultRequestHeaders的静态HttpClient,并将其用于每个请求,但也要添加一个自定义标头。
我希望尽可能快地完成这个过程,所以如果您有其他方法,请告诉我。
Parallel.ForEach(Requests, Request =>
{
var Client = new HttpClient();
Client.DefaultRequestHeaders.Clear();
Client.DefaultRequestHeaders.Add("Header1", "Value1");
Client.DefaultRequestHeaders.Add("Header2", "Value2");
Client.DefaultRequestHeaders.Add("Header3", "Value for exact this request");
var response = Client.PutAsync(new Uri($"http://example.com/books/1234/readers/837"), null); //.Result (?)
Client.Dispose();
});