Java org.apache.http.HttpException:不支持的内容编码:无
我使用ApacheHTTP组件将POST请求发送到不属于我的服务器(因此我无法修改其配置) 服务器响应我,设置Java org.apache.http.HttpException:不支持的内容编码:无,java,http,apache-httpcomponents,Java,Http,Apache Httpcomponents,我使用ApacheHTTP组件将POST请求发送到不属于我的服务器(因此我无法修改其配置) 服务器响应我,设置Content-Encoding:none头,导致org.apache.http.HttpException:Unsupported Content-Encoding:none异常 我在StackOverflow上找到了可以使用HttpClients.custom().disableContentCompression().build()禁用RequestAcceptEncoding和R
Content-Encoding:none
头,导致org.apache.http.HttpException:Unsupported Content-Encoding:none
异常
我在StackOverflow上找到了可以使用HttpClients.custom().disableContentCompression().build()
禁用RequestAcceptEncoding
和ResponseContentEncoding
拦截器的地方,因此不引发异常。但是,我不希望以这种方式全局重新配置我的HttpClient
在不向HttpClient添加更改的情况下,是否有解决此问题的方法
作为说明,我根本不必阅读响应体,因为它是空的。我只需要能够读取响应代码(即200OK
)
谢谢您的时间。几个月后,我终于找到了这个问题的解决方案
使用拦截器修复错误的内容编码头有一个解决方法。我遇到了类似的问题。一个简单的修复方法是在http客户端生成器中禁用压缩
HttpClientBuilder clientBuilder = HttpClients.custom();
clientBuilder.disableContentCompression();
HttpClient client = clientBuilder.build();
服务器的响应无效。你报告错误了吗?遗憾的是,报告错误在这种情况下没有帮助,因为服务器的所有者不会修复它。这一点我肯定,因为我知道他们。我必须在我这方面找到一些解决方法。我已经决定,我将简单地将HttpClient.execute()放在一个try-catch中,其中包含该异常的空catch块,直到找到真正的解决方案。