如何使用 Apache http 客户端发送没有内容和 Content-Length header 的 PUT 请求?
Howto send PUT request without content and Content-Length header with Apache http client?
我想测试(通过自动化测试)服务器(和所有代理 in-the-middle)如何响应 PUT 请求 without body 和Content-Length
header.
类似于 curl 的作用
curl -XPUT http://example.com
使用 Apache HTTP 客户端 (4.5.13)
但是如果我没有指定 body,它看起来总是添加 Content-Length
header。
有什么方法可以用 Apache HTTP 客户端做到这一点吗?
已经试过了(没有运气)
final HttpPut request = new HttpPut(url);
request.removeHeaders("Content-Length");
使用请求拦截器修改标准协议处理器生成的请求
CloseableHttpClient httpClient = HttpClients.custom()
.addInterceptorLast((HttpRequestInterceptor) (request, context) ->
request.removeHeaders(HttpHeaders.CONTENT_LENGTH))
.build();
HttpPut httpPut = new HttpPut("http://httpbin.org/put");
httpClient.execute(httpPut, response -> {
EntityUtils.consume(response.getEntity());
return null;
});
我想测试(通过自动化测试)服务器(和所有代理 in-the-middle)如何响应 PUT 请求 without body 和Content-Length
header.
类似于 curl 的作用
curl -XPUT http://example.com
使用 Apache HTTP 客户端 (4.5.13)
但是如果我没有指定 body,它看起来总是添加 Content-Length
header。
有什么方法可以用 Apache HTTP 客户端做到这一点吗?
已经试过了(没有运气)
final HttpPut request = new HttpPut(url);
request.removeHeaders("Content-Length");
使用请求拦截器修改标准协议处理器生成的请求
CloseableHttpClient httpClient = HttpClients.custom()
.addInterceptorLast((HttpRequestInterceptor) (request, context) ->
request.removeHeaders(HttpHeaders.CONTENT_LENGTH))
.build();
HttpPut httpPut = new HttpPut("http://httpbin.org/put");
httpClient.execute(httpPut, response -> {
EntityUtils.consume(response.getEntity());
return null;
});