How do I set a default User Agent on an HttpClient?

It's easy to set a user agent on an HttpRequest, but often I want to use a single HttpClient and use the same user agent every time, rather than having to set it on each request.

5 Answers

You can solve this easily using:

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

Using DefaultRequestHeaders.Add(...) did not work for me.

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

The following worked for me in a .NET Standard 2.0 library:

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
1

Using JensG comment

Short addition: The UserAgent class also offers TryParse, which comes especially handy when there is no version number (for whatever reason). The RFC explicitly allows this case.

on 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
}
1
string agent="ClientDemo/1.0.0.1 test user agent DefaultRequestHeaders";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", agent);

remark: use this structure to generate the agent name User-Agent: product / product-version comment

  • product: Product identifier
  • product-version: Product version number.
  • comment: None or more of the infomation Comments containing product, for example.

references

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like