#java #apache-httpclient-4.x #content-length
#Ява #apache-httpclient-4.x #содержание-длина
Вопрос:
Я хотел бы проверить (с помощью автоматического тестирования), как сервер (и все промежуточные прокси) реагирует на запрос PUT без тела и Content-Length
заголовка.
Похоже на то, что делает curl
curl -XPUT http://example.com
с помощью HTTP-клиента Apache (4.5.13)
Но похоже, что он всегда добавляет Content-Length
заголовок, если я не указываю тело. Есть ли какой-либо способ сделать это с помощью HTTP-клиента Apache?
Уже пробовал (не повезло)
final HttpPut request = new HttpPut(url); request.removeHeaders("Content-Length");
Ответ №1:
Используйте перехватчик запросов для изменения запросов, генерируемых процессором стандартного протокола
CloseableHttpClient httpClient = HttpClients.custom() .addInterceptorLast((HttpRequestInterceptor) (request, context) -gt; request.removeHeaders(HttpHeaders.CONTENT_LENGTH)) .build(); HttpPut httpPut = new HttpPut("http://httpbin.org/put"); httpClient.execute(httpPut, response -gt; { EntityUtils.consume(response.getEntity()); return null; });