在HttpRequest上设置set a user agent很容易,但我通常希望使用单个HttpClient,并且每次都使用相同的用户代理,而不是在每次请求时都设置它。
HttpRequest
HttpClient
i7uq4tfw1#
您可以使用以下命令轻松解决此问题:
HttpClient _client = new HttpClient(); _client.DefaultRequestHeaders.Add("User-Agent", "C# App");
kcugc4gi2#
使用DefaultRequestHeaders.Add(...)对我不起作用。
DefaultRequestHeaders.Add(...)
var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.UserAgent.ParseAdd("Mozilla/5.0 (compatible; AcmeInc/1.0)");
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
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 }
i1icjdpr5#
string agent="ClientDemo/1.0.0.1 test user agent DefaultRequestHeaders"; HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", agent);
备注:使用此结构生成代理名称User-Agent:产品/产品版本注解
references
5条答案
按热度按时间i7uq4tfw1#
您可以使用以下命令轻松解决此问题:
kcugc4gi2#
使用
DefaultRequestHeaders.Add(...)
对我不起作用。ki1q1bka3#
下面是我在.NET标准2.0库中工作的情况:
xmjla07d4#
使用JensG注解
短添加:UserAgent类还提供了TryParse,当没有版本号时(无论出于何种原因),它特别方便。RFC明确允许这种情况。
关于this answer
i1icjdpr5#
备注:使用此结构生成代理名称User-Agent:产品/产品版本注解
references