Aangepaste user-agent in HttpClient 4
1. Overzicht
Deze korte tutorial zal laten zien hoe u een aangepast User-Agent header met behulp van Apache HttpClient 4.
2. Instelling User-Agent op de HttpClient
2.1. Voordat HttpClient 4.3
Als u met oudere versies van Http Client (vóór 4.3) werkt, stelt u de waarde van het User-Agent werd gedaan via een low-level API:
client.getParams (). setParameter (CoreProtocolPNames.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0");
Hetzelfde kan worden gedaan via ook een API op een hoger niveau - zonder om te gaan met het rauwe http.useragent eigendom:
HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0");
Een volledig voorbeeld zou er als volgt uitzien:
@ Test openbare leegte whenClientUsesCustomUserAgent_thenCorrect () gooit ClientProtocolException, IOException {DefaultHttpClient client = nieuwe DefaultHttpClient (); HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0"); HttpGet request = nieuwe HttpGet ("// www.github.com"); client.execute (verzoek); }
2.2. Na HttpClient 4.3
In de recente versie van de Apache-client (na 4.3) wordt hetzelfde bereikt op een veel schonere manier, via de nieuwe vloeiende API's:
@Test public void whenRequestHasCustomUserAgent_thenCorrect () gooit ClientProtocolException, IOException {HttpClient instance = HttpClients.custom (). SetUserAgent ("Mozilla / 5.0 Firefox / 26.0"). Build (); instance.execute (nieuwe HttpGet ("// www.github.com")); }
3. Instelling User-Agent op individuele verzoeken
Een gewoonte User-Agent header kan ook worden ingesteld op individuele verzoeken, niet op het geheel HttpClient:
@Test openbare leegte gegevenDeprecatedApi_whenRequestHasCustomUserAgent_thenCorrect () gooit ClientProtocolException, IOException {HttpClient instantie = HttpClients.custom (). Build (); HttpGet request = nieuwe HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0"); instance.execute (verzoek); }
4. Conclusie
Dit artikel illustreert hoe u dat kunt gebruik de HttpClient om verzoeken met custom User-Agent koptekst - bijvoorbeeld om het gedrag van een specifieke browser te simuleren.
De implementatie van al deze voorbeelden en codefragmenten is te vinden in mijn github-project - dit is een op Eclipse gebaseerd project, dus het zou gemakkelijk moeten kunnen worden geïmporteerd en uitgevoerd zoals het is.