小编cle*_*d87的帖子

C# HttpClient 自定义标头每个请求

我注意到在修改HttpClient.DefaultRequestHeaders时使用 HttpClient不是线程安全的,但我想发出尽可能多的请求。每个请求我都需要一个自定义标头(另外两个标头始终相同)。URL也有点变化

  1. http://example.com/books/1234/readers/837
  2. http://example.com/books/854/readers/89
  3. http://example.com/books/29432/readers/238
  4. ... 很快

目前我正在为每个请求创建一个新的 HttpClient,但我觉得创建 10k+ HttpClients 不是这里的最佳选择。

我想制作一个带有 2 个 DefaultRequestHeaders 的静态 HttpClient,并为每个请求使用这个 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();
        });
Run Code Online (Sandbox Code Playgroud)

c# header httpclient request

2
推荐指数
1
解决办法
2951
查看次数

标签 统计

c# ×1

header ×1

httpclient ×1

request ×1