【问题标题】:How do I set a default User Agent on an HttpClient?如何在 HttpClient 上设置默认用户代理?
【发布时间】:2017-05-19 18:42:28
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您可以使用以下方法轻松解决此问题:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 应该是公认的答案。
      【解决方案3】:

      以下内容在 .NET Standard 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
      

      【讨论】:

      • 简短补充:UserAgent 类还提供了TryParse,当没有版本号(无论出于何种原因)时,它特别方便。 RFC 明确允许这种情况。
      【解决方案4】:

      使用JensG comment

      补充一点: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
      }
      

      【讨论】:

      • 我认为代码行实际上什么都不做,除了返回 false?
      【解决方案5】:
      string agent="ClientDemo/1.0.0.1 test user agent DefaultRequestHeaders";
      HttpClient client = new HttpClient();
      client.DefaultRequestHeaders.Add("User-Agent", agent);
      

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

      • 产品:产品标识符
      • product-version:产品版本号。
      • comment:例如,一个或多个包含产品的信息评论。

      references

      【讨论】:

      • 注释应该用“(”和“)”括起来。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 1970-01-01
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多