1. Обзор
В этом руководстве мы рассмотрим, как установить собственный заголовок с помощью HttpClient.
Если вы хотите копнуть глубже и узнать о других интересных вещах, которые можно делать с помощью HttpClient, — перейдите к основному руководству по HttpClient .
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");
List<Header> headers = 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 .