How to set custom User-Agent with apache http client library 4.1?

Note: The solution is for users using the old httpcomponents 4.2 and before.

The line

request.setHeader("User-Agent", "MySuperUserAgent");

is missing. Add it and enjoy.


Note: Starting from httpcomponents 4.3 this solution is deprecated.

You can also set a global user agent value instead of per request:

String userAgent = "NewUseAgent/1.0";
HttpClient httpClient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.USER_AGENT, userAgent);

With httpcomponents 4.3 you should use the client builder to set the user agent:

HttpClient httpClient = HttpClients.custom()
                            .setUserAgent("my UserAgent 5.0")
                            .build();

httpClient.execute(new HttpGet("http://www.google.de"));