HttpClient 4 szakácskönyv

1. Áttekintés

Ez a szakácskönyv megmutatja hogyan kell használni az Apache HttpClient 4 alkalmazást különféle példákban és felhasználási esetekben.

A hangsúly a HttpClient 4.3.x és újabb, így néhány példa nem biztos, hogy működik az API régebbi verzióival.

A szakácskönyv formátuma példaértékű és praktikus - nincs szükség idegen részletekre és magyarázatokra.

Ha mélyebbre akarsz ásni, és további jó dolgokat akarsz megtudni, amit a HttpClient-nel tehetsz - menj tovább a fő HttpClient oktatóanyag.

2. Szakácskönyv

hozza létre a http klienst

CloseableHttpClient kliens = HttpClientBuilder.create (). Build ();

küldje el az alapvető GET kérést

instance.execute (új HttpGet ("// www.google.com"));

kapja meg a HTTP válasz állapotkódját

CloseableHttpResponse response = instance.execute (új HttpGet ("// www.google.com")); assertThat (response.getStatusLine (). getStatusCode (), equalTo (200));

kapja meg a válasz Média típusát

CloseableHttpResponse response = instance.execute (új HttpGet ("// www.google.com")); String contentMimeType = ContentType.getOrDefault (response.getEntity ()). GetMimeType (); assertThat (contentMimeType, equalTo (ContentType.TEXT_HTML.getMimeType ()));

megkapja a válasz testét

CloseableHttpResponse response = instance.execute (új HttpGet ("// www.google.com")); String bodyAsString = EntityUtils.toString (response.getEntity ()); assertThat (bodyAsString, notNullValue ());

konfigurálja az időkorlátot egy kérésre

@Test (várható = SocketTimeoutException.class) public void givenLowTimeout_whenExecutingRequestWithTimeout_thenException () dobja a ClientProtocolException, IOException {RequestConfig requestConfig = RequestConfig.customout (set. (SetTime) (Set. HttpGet kérés = új HttpGet (SAMPLE_URL); request.setConfig (requestConfig); instance.execute (kérés); }

konfigurálja az időkorlátot az egész kliensen

RequestConfig requestConfig = RequestConfig.custom (). setConnectionRequestTimeout (1000) .setConnectTimeout (1000) .setSocketTimeout (1000) .build (); HttpClientBuilder builder = HttpClientBuilder.create (). SetDefaultRequestConfig (requestConfig);

küldjön POST kérést

instance.execute (új HttpPost (SAMPLE_URL));

paramétereket adhat hozzá egy kéréshez

List params = new ArrayList (); params.add (új BasicNameValuePair ("kulcs1", "érték1")); params.add (új BasicNameValuePair ("kulcs2", "érték2")); request.setEntity (new UrlEncodedFormEntity (params, Consts.UTF_8));

konfigurálja az átirányítás kezelését egy HTTP-kérelemnél

CloseableHttpClient instance = HttpClientBuilder.create (). DisableRedirectHandling (). Build (); CloseableHttpResponse response = instance.execute (új HttpGet ("// t.co/I5YYd9tddw")); assertThat (response.getStatusLine (). getStatusCode (), equalTo (301));

konfigurálja a fejléceket egy kéréshez

HttpGet kérés = új HttpGet (SAMPLE_URL); request.addHeader (HttpHeaders.ACCEPT, "alkalmazás / xml"); válasz = instance.execute (kérés);

kapja meg a fejléceket a válaszból

CloseableHttpResponse response = instance.execute (új HttpGet (SAMPLE_URL)); Fejléc [] fejlécek = response.getHeaders (HttpHeaders.CONTENT_TYPE); assertThat (fejlécek, nem (emptyArray ()));

erőforrások bezárása / felszabadítása

válasz = példány.execute (új HttpGet (SAMPLE_URL)); próbáld ki a {HttpEntity entitást = response.getEntity (); if (entitás! = null) {InputStream instream = entitás.getContent (); instream.close (); }} végül {response.close (); }

3. Menjen mélyen a HttpClient-be

A HttpClient könyvtár elég hatékony eszköz, ha helyesen használják - ha el akarja indítani annak feltárása, hogy az ügyfél mit tehet - nézzen meg néhány oktatóanyagot:

  • HttpClient 4 - Szerezze be az állapotkódot
  • HttpClient - Egyéni fejléc beállítása

Te is ásson sokkal mélyebben a HttpClientbe az egész sorozat felfedezésével.

4. Következtetés

Ez a formátum kissé eltér attól, ahogy általában felépítem a cikkeimet - Közzéteszem néhány belső fejlesztési szakácskönyvemet egy adott témában - a Google Guava, Hamcrest ésMockito - és most HttpClient. A cél az, hogy ezek az információk könnyen elérhetőek legyenek online - és kiegészüljenek velük, amikor új hasznos példával találkozom.

Mindezen példák és kódrészletek megvalósítása megtalálható a GitHub oldalán.

Ez egy Maven-alapú projekt, ezért könnyen importálhatónak és futtathatónak kell lennie.


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