我的代码是
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()
时,我得到了所需的回复,但the API明确指出
注意:这将导致整个响应正文缓冲在内存中。恶意服务器可能很容易耗尽所有VM内存。强烈建议,如果响应的内容长度未知或合理地大,请使用getResponseAsStream。
是否有上述方法的替代方案?
答案 0 :(得分:0)
您正在阅读的内容声称使用UTF-8编码,但没有(可能使用LATIN-1或Windows默认编码):也就是说,XML文档是问题被破坏;或您调用的服务返回不正确的编码定义。无论哪种方式,服务都会向您返回无效信息。