繁体   English   中英

getResponseBodyAsStream返回“ 1字节UTF-8序列的无效字节1”

[英]getResponseBodyAsStream returns “Invalid byte 1 of 1-byte UTF-8 sequence”

我的代码是

PostMethod method = new PostMethod(TRANSLATION_SERVICE);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(method.getResponseBodyAsStream());

它产生

1字节UTF-8序列的无效字节1

当我使用method.getResponseBodyAsString() ,我得到了所需的响应,但是API明确指出:

注意:这将导致整个响应主体被缓存在内存中。 恶意服务器可能会轻易耗尽所有VM内存。 如果响应的内容长度未知或较大,则强烈建议使用getResponseAsStream。

是否有上述方法的替代方法?

您正在阅读的内容声称使用UTF-8编码,但并未使用(可能使用LATIN-1或Windows默认编码):也就是说,XML文档是否已损坏? 或您调用的服务返回错误的编码定义。 无论哪种方式,服务都会向您返回无效信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM