Brugerdefineret HTTP-header med HttpClient

1. Oversigt

I denne vejledning ser vi på, hvordan du indstiller en brugerdefineret header med HttpClient.

Hvis du vil grave dybere og lære andre seje ting, du kan gøre med HttpClient - gå videre til de vigtigste HttpClient tutorial.

2. Indstil header på anmodning - 4.3 og derover

HttpClient 4.3 har introduceret en ny måde at bygge anmodninger på - the RequestBuilder. For at indstille et header, vi bruger setHeader metode - på bygherren:

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

3. Sæt header på anmodning - inden 4.3

I versioner før 4.3 af HttpClient, vi kan indstille ethvert brugerdefineret header på en anmodning med et simpelt setHeader ring på anmodningen:

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

Som vi kan se, indstiller vi Indholdstype direkte på anmodningen til en brugerdefineret værdi - JSON.

4. Indstil standardoverskrift på klienten

I stedet for at indstille headeren på hver eneste anmodning kan vi også konfigurer det som standardoverskrift på klienten sig selv:

Header header = ny BasicHeader (HttpHeaders.CONTENT_TYPE, "application / json"); Listeoverskrifter = Lists.newArrayList (header); HttpClient-klient = HttpClients.custom (). SetDefaultHeaders (overskrifter) .build (); HttpUriRequest anmodning = RequestBuilder.get (). SetUri (SAMPLE_URL) .build (); client.execute (anmodning);

Dette er yderst nyttigt, når overskriften skal være den samme for alle anmodninger - f.eks. En brugerdefineret applikationsoverskrift.

5. Konklusion

Denne artikel illustrerede, hvordan du tilføjer en HTTP-header til en eller alle anmodninger sendt via Apache HttpClient.

Implementeringen af ​​alle disse eksempler og kodestykker findes i GitHub-projektet.


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