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

c# asp.net 匿名 | 2020-02-27 02:22:05


在一个HttpRequest上设置一个用户代理很容易,但我通常希望使用一个HttpClient,每次都使用同一个用户代理,而不必在每次请求时都设置它。





4 答案



您可以使用:
HttpClient _client = new HttpClient();
_client.DefaultRequestHeaders.Add("User-Agent", "C# App");

2020-02-27 02:22:25
匿名


使用
DefaultRequestHeaders.Add(...)
对我不起作用。
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (compatible; AcmeInc/1.0");

2020-02-27 02:22:51
匿名


在.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

2020-02-27 02:23:12
匿名


使用JensG comment
Short addition:UserAgent类还提供了TryParse,当没有版本号(无论出于什么原因)时,它特别方便。RFC明确允许这种情况。
关于这个答案
using System.Net.Http;

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

2020-02-27 02:23:27
匿名


World is powered by solitude
备案号:湘ICP备19012068号