org.apache.http.HttpException:不支持 Content-Coding:none
org.apache.http.HttpException: Unsupported Content-Coding: none
我正在使用 Apache HTTP 组件向不属于我的服务器发送 POST 请求(因此我无法修改其配置)。
作为对我的回应,服务器设置了 Content-Encoding: none
header,这导致了 org.apache.http.HttpException: Unsupported Content-Coding: none
异常。
我在 Whosebug 的某个地方发现我可以使用 HttpClients.custom().disableContentCompression().build()
来禁用 RequestAcceptEncoding
和 ResponseContentEncoding
拦截器,因此不会抛出异常。但是,我不想在全局范围内以这种方式重新配置我的 HttpClient
。
在不对 HttpClient
添加更改的情况下,是否有任何解决此问题的方法?
请注意,我根本不需要阅读回复 body,因为它是空的。我只需要能够读取响应代码(即 200 OK
)。
感谢您的宝贵时间。
几个月后我终于找到了解决这个问题的方法!
有一个使用拦截器修复错误的解决方法 Content-Encoding header, see this blog entry.
我遇到了类似的问题。一个简单的解决方法是在 http 客户端构建器中禁用压缩。
HttpClientBuilder clientBuilder = HttpClients.custom();
clientBuilder.disableContentCompression();
HttpClient client = clientBuilder.build();
我正在使用 Apache HTTP 组件向不属于我的服务器发送 POST 请求(因此我无法修改其配置)。
作为对我的回应,服务器设置了 Content-Encoding: none
header,这导致了 org.apache.http.HttpException: Unsupported Content-Coding: none
异常。
我在 Whosebug 的某个地方发现我可以使用 HttpClients.custom().disableContentCompression().build()
来禁用 RequestAcceptEncoding
和 ResponseContentEncoding
拦截器,因此不会抛出异常。但是,我不想在全局范围内以这种方式重新配置我的 HttpClient
。
在不对 HttpClient
添加更改的情况下,是否有任何解决此问题的方法?
请注意,我根本不需要阅读回复 body,因为它是空的。我只需要能够读取响应代码(即 200 OK
)。
感谢您的宝贵时间。
几个月后我终于找到了解决这个问题的方法!
有一个使用拦截器修复错误的解决方法 Content-Encoding header, see this blog entry.
我遇到了类似的问题。一个简单的解决方法是在 http 客户端构建器中禁用压缩。
HttpClientBuilder clientBuilder = HttpClients.custom();
clientBuilder.disableContentCompression();
HttpClient client = clientBuilder.build();