Egendefinert brukeragent i HttpClient 4

1. Oversikt

Denne raske opplæringen vil vises hvordan du sender en egendefinert Bruker agent topptekst ved hjelp av Apache HttpClient 4.

2. Innstilling Bruker agentHttpClient

2.1. Før HttpClient 4.3

Når du arbeider med eldre versjoner av Http Client (før 4.3), stiller du inn verdien til Bruker agent var ferdig via et API på lavt nivå:

client.getParams (). setParameter (CoreProtocolPNames.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0");

Det samme kan gjøres via et høyere nivå API også - uten å håndtere det rå http.brukeragent eiendom:

HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0");

Et fullstendig eksempel vil se slik ut:

@Test offentlig ugyldig nårClientUsesCustomUserAgent_thenCorrect () kaster ClientProtocolException, IOException {DefaultHttpClient client = new DefaultHttpClient (); HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0"); HttpGet forespørsel = ny HttpGet ("// www.github.com"); client.execute (forespørsel); }

2.2. Etter HttpClient 4.3

I den nyeste versjonen av Apache-klienten (etter 4.3) oppnås det samme på en mye renere måte via de nye flytende API-ene:

@Test offentlig ugyldig nårRequestHasCustomUserAgent_thenCorrect () kaster ClientProtocolException, IOException {HttpClient-forekomst = HttpClients.custom (). SetUserAgent ("Mozilla / 5.0 Firefox / 26.0"). Build (); eksempel.execute (ny HttpGet ("// www.github.com")); }

3. Innstilling Bruker agent på individuelle forespørsler

En skikk Bruker agent header kan også angis på individuelle forespørsler, ikke på hele HttpClient:

@Test offentlig ugyldighet givenDeprecatedApi_whenRequestHasCustomUserAgent_thenCorrect () kaster ClientProtocolException, IOException {HttpClient-forekomst = HttpClients.custom (). Build (); HttpGet forespørsel = ny HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0"); forekomst. utføre (forespørsel); }

4. Konklusjon

Denne artikkelen illustrerte hvordan du kan bruk HttpClient til å sende forespørsler med tilpasset Bruker agent Overskrift - for eksempel for å simulere atferden til en bestemt nettleser.

Implementeringen av alle disse eksemplene og kodebiter finner du i github-prosjektet mitt - dette er et formørkelsesbasert prosjekt, så det skal være enkelt å importere og kjøre som det er.


$config[zx-auto] not found$config[zx-overlay] not found