Aangepaste HTTP-header met de HttpClient

1. Overzicht

In deze zelfstudie bekijken we hoe u een aangepaste koptekst instelt met de HttpClient.

Als je dieper wilt graven en leer andere coole dingen die u kunt doen met de HttpClient - ga naar de hoofdhandleiding van HttpClient.

2. Stel koptekst op verzoek in - 4.3 en hoger

HttpClient 4.3 heeft een nieuwe manier geïntroduceerd om verzoeken te bouwen - de RequestBuilder. Om een ​​koptekst in te stellen, we zullen de setHeader methode - op de bouwer:

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

3. Koptekst op verzoek instellen - vóór 4.3

In versies vóór 4.3 van HttpClient, we kunnen elke aangepaste koptekst op een verzoek instellen met een simple setHeader doe een beroep op het verzoek:

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

Zoals we kunnen zien, stellen we de Inhoudstype rechtstreeks op het verzoek naar een aangepaste waarde - JSON.

4. Stel de standaardkop in op de client

In plaats van de koptekst op elk verzoek in te stellen, kunnen we dat ook configureer het als een standaard header op de Client zelf:

Header header = nieuwe BasicHeader (HttpHeaders.CONTENT_TYPE, "application / json"); Lijst headers = Lists.newArrayList (header); HttpClient client = HttpClients.custom (). SetDefaultHeaders (headers) .build (); HttpUriRequest request = RequestBuilder.get (). SetUri (SAMPLE_URL) .build (); client.execute (verzoek);

Dit is uitermate handig als de koptekst voor alle verzoeken hetzelfde moet zijn, zoals een aangepaste toepassingsheader.

5. Conclusie

Dit artikel illustreert hoe u een HTTP-header toevoegt aan een of alle verzoeken die via de Apache HttpClient worden verzonden.

De implementatie van al deze voorbeelden en codefragmenten is te vinden in het GitHub-project.