Tilpasset HTTP-topptekst med HttpClient

1. Oversikt

I denne opplæringen vil vi se på hvordan du setter et tilpasset overskrift med HttpClient.

Hvis du vil grave dypere og lære andre kule ting du kan gjøre med HttpClient - gå videre til HttpClient-hovedveiledningen.

2. Sett topptekst på forespørsel - 4.3 og over

HttpClient 4.3 har introdusert en ny måte å bygge forespørsler på - the RequestBuilder. For å sette en overskrift, vi bruker setHeader metode - på byggherren:

HttpClient-klient = HttpClients.custom (). Build (); HttpUriRequest request = RequestBuilder.get () .setUri (SAMPLE_URL) .setHeader (HttpHeaders.CONTENT_TYPE, "application / json") .build (); client.execute (forespørsel);

3. Sett topptekst på forespørsel - Før 4.3

I versjoner før 4.3 av HttpClient, vi kan angi hvilken som helst tilpasset overskrift på forespørsel med en enkel setHeader ring på forespørselen:

HttpClient-klient = ny DefaultHttpClient (); HttpGet forespørsel = ny HttpGet (SAMPLE_URL); request.setHeader (HttpHeaders.CONTENT_TYPE, "application / json"); client.execute (forespørsel);

Som vi ser, setter vi inn Innholdstype direkte på forespørselen til en tilpasset verdi - JSON.

4. Sett standard overskrift på klienten

I stedet for å sette overskriften på hver forespørsel, kan vi også konfigurer det som standard overskrift på klienten seg selv:

Toppteksthode = ny BasicHeader (HttpHeaders.CONTENT_TYPE, "application / json"); List headers = Lists.newArrayList (header); HttpClient-klient = HttpClients.custom (). SetDefaultHeaders (headers) .build (); HttpUriRequest forespørsel = RequestBuilder.get (). SetUri (SAMPLE_URL) .build (); client.execute (forespørsel);

Dette er ekstremt nyttig når overskriften må være den samme for alle forespørsler - for eksempel en tilpasset applikasjonsoverskrift.

5. Konklusjon

Denne artikkelen illustrerte hvordan du legger til en HTTP-overskrift til en eller alle forespørsler som sendes via Apache HttpClient.

Implementeringen av alle disse eksemplene og kodebiter finner du i GitHub-prosjektet.


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