使用HttpClient 3.1设置响应编码
我正在使用org.apache.commons.httpclient.HttpClient
并且需要设置响应编码(由于某种原因,服务器在Content-
Type中返回了错误的编码)。我的方法是将响应作为原始字节获取,并以String
所需的编码转换为。我想知道是否有更好的方法(例如,设置HttpClient)。感谢您的建议。
回答:
我认为使用HttpClient
3.x API 没有更好的答案。
HTTP
1.1规范清楚地表明,客户端“必须”遵守响应头中指定的字符集,如果未指定任何字符集,则使用ISO-8859-1。这些HttpClient
API的设计假设是程序员希望遵守HTTP规范。显然,您需要违反规范中的规则,以便可以与不兼容的服务器进行通讯。尽管如此,这不是API设计人员认为需要明确支持的用例。
如果您使用的是HttpClient
4.x,则可以编写自己的代码ResponseHandler
以将正文转换为HttpEntity
,而忽略响应消息的名义字符集。
以上是 使用HttpClient 3.1设置响应编码 的全部内容, 来源链接: utcz.com/qa/421821.html