Egyéni User-Agent a HttpClient 4-ben

1. Áttekintés

Ez a gyors bemutató megmutatja hogyan küldjön egy szokást User-Agent fejléc az Apache HttpClient 4 használatával.

2. Beállítás User-Agent a HttpClient

2.1. A HttpClient előtt 4.3

Ha a Http Client régebbi verzióival dolgozik (4.3 előtti verzió), állítsa be a User-Agent kész volt alacsony szintű API-n keresztül:

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

Ugyanez megtehető a következőn keresztül: egy magasabb szintű API is - anélkül, hogy a nyerssel foglalkozna http.useragent ingatlan:

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

A teljes példa így néz ki:

@Test public void whenClientUsesCustomUserAgent_thenCorrect () dobja a ClientProtocolException, IOException {DefaultHttpClient kliens = új DefaultHttpClient (); HttpProtocolParams.setUserAgent (client.getParams (), "Mozilla / 5.0 Firefox / 26.0"); HttpGet request = új HttpGet ("// www.github.com"); client.execute (kérés); }

2.2. A HttpClient 4.3 után

Az Apache kliens legújabb verziójában (4.3 után) ugyanezt sokkal tisztább módon érik el az új folyékony API-k:

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

3. Beállítás User-Agent egyedi kérésekről

Egy szokás User-Agent A fejléc egyedi kérésekre is beállítható, nem pedig teljes egészében HttpClient:

@Test public void givenDeprecatedApi_whenRequestHasCustomUserAgent_thenCorrect () dobja a ClientProtocolException, IOException {HttpClient instance = HttpClients.custom (). Build (); HttpGet kérés = új HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.USER_AGENT, "Mozilla / 5.0 Firefox / 26.0"); instance.execute (kérés); }

4. Következtetés

Ez a cikk bemutatta, hogyan lehet a HttpClient használatával egyedi kérelmeket küldhet User-Agent fejléc - például egy adott böngésző viselkedésének szimulálására.

Mindezen példák és kódrészletek megvalósítása megtalálható a github projektemben - ez egy Eclipse alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.