Автор оригинала: Eugen Paraschiv.
1. Обзор
В этом уроке мы рассмотрим, как установить пользовательский заголовок с помощью HttpClient.
Если вы хотите копнуть глубже и узнать другие интересные вещи, которые вы можете сделать с помощью HttpClient – перейдите к основному учебнику HttpClient .
Дальнейшее чтение:
Сделайте простой HTTP-запрос на Java
Расширенная конфигурация HttpClient
Изучение нового HTTP-клиента на Java
2. Установите заголовок по запросу – 4.3 и выше
HttpClient 4.3 представил новый способ построения запросов – RequestBuilder . Чтобы задать заголовок, мы будем использовать метод setHeader – в конструкторе:
HttpClient client = HttpClients.custom().build(); HttpUriRequest request = RequestBuilder.get() .setUri(SAMPLE_URL) .setHeader(HttpHeaders.CONTENT_TYPE, "application/json") .build(); client.execute(request);
3. Установите заголовок по запросу – До 4.3
В версиях до 4.3 HttpClient мы можем установить любой пользовательский заголовок для запроса с помощью простого setHeader вызова запроса:
HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(SAMPLE_URL); request.setHeader(HttpHeaders.CONTENT_TYPE, "application/json"); client.execute(request);
Как мы видим, мы устанавливаем Content-Type непосредственно в запросе на пользовательское значение – JSON.
4. Установите заголовок по умолчанию на клиенте
Вместо того, чтобы устанавливать заголовок для каждого запроса, мы также можем настроить его как заголовок по умолчанию для самого клиента :
Header header = new BasicHeader(HttpHeaders.CONTENT_TYPE, "application/json"); Listheaders = Lists.newArrayList(header); HttpClient client = HttpClients.custom().setDefaultHeaders(headers).build(); HttpUriRequest request = RequestBuilder.get().setUri(SAMPLE_URL).build(); client.execute(request);
Это чрезвычайно полезно, когда заголовок должен быть одинаковым для всех запросов – например, пользовательский заголовок приложения.
5. Заключение
В этой статье показано, как добавить HTTP-заголовок к одному или всем запросам, отправленным через Apache HttpClient.
Реализацию всех этих примеров и фрагментов кода можно найти в проекте GitHub .