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.