Vlastný užívateľský agent v HttpClient 4

1. Prehľad

Tento rýchly tutoriál sa ukáže ako poslať zvyk User-Agent hlavička pomocou Apache HttpClient 4.

2. Nastavenie User-Agent na HttpClient

2.1. Pred HttpClient 4.3

Pri práci so staršími verziami klienta Http (pre 4.3), nastavenie hodnoty User-Agent bolo urobené prostredníctvom nízkoúrovňového API:

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

To isté sa dá urobiť prostredníctvom API vyššej úrovne - bez toho, aby som sa zaoberal surovým http.useragent nehnuteľnosť:

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

Celý príklad by vyzeral takto:

@ Test public void whenClientUsesCustomUserAgent_thenCorrect () vyvolá ClientProtocolException, IOException {DefaultHttpClient client = new DefaultHttpClient (); HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0"); HttpGet request = nový HttpGet ("// www.github.com"); client.execute (žiadosť); }

2.2. Po HttpClient 4.3

V najnovšej verzii klienta Apache (po 4.3) je to isté dosiahnuté oveľa čistejším spôsobom prostredníctvom nových plynulých rozhraní API:

@Test public void whenRequestHasCustomUserAgent_thenCorrect () vyvolá ClientProtocolException, IOException {HttpClient instance = HttpClients.custom (). SetUserAgent ("Mozilla / 5.0 Firefox / 26.0"). Build (); instance.execute (nový HttpGet ("// www.github.com")); }

3. Nastavenie User-Agent o individuálnych požiadavkách

Zvyk User-Agent hlavičku je možné nastaviť aj na jednotlivé požiadavky, nie na celú HttpClient:

@ Test public void givenDeprecatedApi_whenRequestHasCustomUserAgent_thenCorrect () vyvolá ClientProtocolException, IOException {HttpClient instance = HttpClients.custom (). Build (); HttpGet požiadavka = nový HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0"); instance.execute (žiadosť); }

4. Záver

Tento článok ilustroval, ako môžete použite HttpClient na zasielanie požiadaviek s vlastným User-Agent hlavička - napríklad na simuláciu správania konkrétneho prehliadača.

Implementácia všetkých týchto príkladov a útržkov kódu nájdete v mojom projekte github - toto je projekt založený na Eclipse, takže by malo byť ľahké ho importovať a spustiť tak, ako je.


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