Brugerdefineret brugeragent i HttpClient 4

1. Oversigt

Denne hurtige vejledning vises hvordan man sender en brugerdefineret Brugeragent header ved hjælp af Apache HttpClient 4.

2. Indstilling Brugeragent på den HttpClient

2.1. Før HttpClient 4.3

Når du arbejder med ældre versioner af Http Client (før 4.3), skal du indstille værdien af Brugeragent var færdig via et lavt niveau API:

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

Det samme kan gøres via også et højere niveau API - uden at beskæftige sig med det rå http.brugeragent ejendom:

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

Et komplet eksempel vil se sådan ud:

@Test offentlig ugyldigt nårClientUsesCustomUserAgent_thenCorrect () kaster ClientProtocolException, IOException {DefaultHttpClient-klient = ny DefaultHttpClient (); HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0"); HttpGet anmodning = ny HttpGet ("// www.github.com"); client.execute (anmodning); }

2.2. Efter HttpClient 4.3

I den seneste version af Apache-klienten (efter 4.3) opnås det samme på en meget renere måde via de nye flydende API'er:

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

3. Indstilling Brugeragent på individuelle anmodninger

En skik Brugeragent header kan også indstilles på individuelle anmodninger, ikke på hele HttpClient:

@Test offentlig ugyldighed givenDeprecatedApi_whenRequestHasCustomUserAgent_thenCorrect () kaster ClientProtocolException, IOException {HttpClient-forekomst = HttpClients.custom (). Build (); HttpGet anmodning = ny HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0"); instans.execute (anmodning); }

4. Konklusion

Denne artikel illustrerede, hvordan du kan Brug HttpClient til at sende anmodninger med brugerdefineret Brugeragent header - for eksempel for at simulere en bestemt browsers opførsel.

Implementeringen af ​​alle disse eksempler og kodestykker kan findes i mit github-projekt - dette er et Eclipse-baseret projekt, så det skal være let at importere og køre som det er.


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