Comment définir un User-Agent personnalisé avec la bibliothèque client Apache http 4.1?

Comment faire pour que HTTPClient utilise l’en-tête User-Agent personnalisé?

Le code suivant soumet un agent utilisateur vide. Qu’est-ce que je rate?

import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreProtocolPNames; import org.apache.http.protocol.BasicHttpContext; import org.apache.http.protocol.HttpContext; import org.apache.http.util.EntityUtils; public class TestHTTP { public static void main(Ssortingng[] args) throws ClientProtocolException, IOException { HttpGet request = new HttpGet("http://tool.keepmeapi.com/echo"); HttpContext HTTP_CONTEXT = new BasicHttpContext(); HTTP_CONTEXT.setAtsortingbute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13"); request.setHeader("Referer", "http://www.google.com"); HttpClient httpClient = new DefaultHttpClient(); HttpResponse response = httpClient.execute(request, HTTP_CONTEXT); if (response.getStatusLine().getStatusCode() = 400) { throw new IOException("Got bad response, error code = " + response.getStatusLine().getStatusCode()); } HttpEntity entity = response.getEntity(); if (entity != null) { System.out.println(EntityUtils.toSsortingng(entity)); EntityUtils.consume(entity); } } } 

La ligne

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

est manquant. Ajoutez-le et profitez-en.

Vous pouvez également définir une valeur d’agent d’utilisateur global au lieu d’une demande:

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

Avec httpcomponents 4.3, vous devez utiliser le générateur de client pour définir l’agent utilisateur:

 HttpClient httpClient = HttpClients.custom() .setUserAgent("my UserAgent 5.0") .build(); httpClient.execute(new HttpGet("http://www.google.de"));