2011-03-21 65 views
0

我的代碼是getResponseBodyAsStream返回 「1字節UTF-8序列的無效字節1」

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

它產生1字節的

無效字節1 UTF-8序列

當我使用method.getResponseBodyAsString(),我得到預期的迴應,但the API明確指出

注意:這將導致整個響應主體緩衝在內存中。惡意服務器可能很容易耗盡所有虛擬機內存。強烈建議,如果響應的內容長度未知或相當大,則使用getResponseAsStream。

是否有替代上述方法?

回答

0

您正在閱讀的內容聲明使用UTF-8編碼,但沒有(可能使用LATIN-1或Windows默認編碼):也就是說,XML文檔是問題被破壞;或者您調用的服務正在返回錯誤的編碼定義。無論哪種方式,服務正在返回您無效的信息。

相關問題