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

Java getResponseBodyAsStream返回“;1字节UTF-8序列的无效字节1“;,java,xml-parsing,Java,Xml Parsing,我的代码是 PostMethod method = new PostMethod(TRANSLATION_SERVICE); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(method.getResponseBodyAsStream()); 它产生 1字节UTF-8序

我的代码是

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

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

当我使用
方法.getResponseBodyAsString()
时,我得到了所需的响应,但明确指出

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


有没有替代上述方法的方法?

您正在阅读的内容声称使用UTF-8编码,但没有(可能使用拉丁语-1或windows默认编码):也就是说,XML文档被破坏;或您呼叫的服务返回不正确的编码定义。无论哪种方式,服务都会返回无效信息