使用HttpClient 3.1设置响应编码

我正在使用org.apache.commons.httpclient.HttpClient并且需要设置响应编码(由于某种原因,服务器在Content-

Type中返回了错误的编码)。我的方法是将响应作为原始字节获取,并以String所需的编码转换为。我想知道是否有更好的方法(例如,设置HttpClient)。感谢您的建议。

回答:

我认为使用HttpClient3.x API 没有更好的答案。

HTTP

1.1规范清楚地表明,客户端“必须”遵守响应头中指定的字符集,如果未指定任何字符集,则使用ISO-8859-1。这些HttpClientAPI的设计假设是程序员希望遵守HTTP规范。显然,您需要违反规范中的规则,以便可以与不兼容的服务器进行通讯。尽管如此,这不是API设计人员认为需要明确支持的用例。

如果您使用的是HttpClient4.x,则可以编写自己的代码ResponseHandler以将正文转换为HttpEntity,而忽略响应消息的名义字符集。

以上是 使用HttpClient 3.1设置响应编码 的全部内容, 来源链接: utcz.com/qa/421821.html

回到顶部