asp.net 如何在HttpClient上设置默认用户代理?

wlzqhblo  于 2023-04-22  发布在  .NET
关注(0)|答案(5)|浏览(219)

HttpRequest上设置set a user agent很容易,但我通常希望使用单个HttpClient,并且每次都使用相同的用户代理,而不是在每次请求时都设置它。

i7uq4tfw

i7uq4tfw1#

您可以使用以下命令轻松解决此问题:

HttpClient _client = new HttpClient();
_client.DefaultRequestHeaders.Add("User-Agent", "C# App");
kcugc4gi

kcugc4gi2#

使用DefaultRequestHeaders.Add(...)对我不起作用。

var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (compatible; AcmeInc/1.0)");
ki1q1bka

ki1q1bka3#

下面是我在.NET标准2.0库中工作的情况:

HttpClient client = new HttpClient();
ProductHeaderValue header = new ProductHeaderValue("MyAwesomeLibrary", Assembly.GetExecutingAssembly().GetName().Version.ToString());
ProductInfoHeaderValue userAgent = new ProductInfoHeaderValue(header);
client.DefaultRequestHeaders.UserAgent.Add(userAgent);
// User-Agent: MyAwesomeLibrary/1.0.0.0
xmjla07d

xmjla07d4#

使用JensG注解
短添加:UserAgent类还提供了TryParse,当没有版本号时(无论出于何种原因),它特别方便。RFC明确允许这种情况。
关于this answer

using System.Net.Http;
using (var httpClient = new HttpClient())
{
    httpClient.DefaultRequestHeaders
      .UserAgent
      .TryParseAdd("Mike D's Agent");
    //User-Agent: Mike D's Agent
}
i1icjdpr

i1icjdpr5#

string agent="ClientDemo/1.0.0.1 test user agent DefaultRequestHeaders";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", agent);

备注:使用此结构生成代理名称User-Agent:产品/产品版本注解

  • product:产品标识符
  • 产品版本:产品版本号。
  • 注解:例如,没有或多个包含产品的信息注解。

references

相关问题