getResponseBodyAsStream возвращает «Неверный байт 1 из 1-байтовой последовательности UTF-8» - PullRequest
1 голос
/ 21 марта 2011

Мой код

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(), я получаю желаемый ответ, но API ясно заявляет, что

Примечание. Это приведет к буферизации всего тела ответа в памяти. Вредоносный сервер может легко исчерпать всю память виртуальной машины. Настоятельно рекомендуется использовать getResponseAsStream, если длина содержимого ответа неизвестна или резонансно велика.

Есть ли альтернатива вышеуказанному подходу?

1 Ответ

0 голосов
/ 27 ноября 2011

Содержимое, которое вы читаете, утверждает, что использует кодировку UTF-8, но не использует (вероятно, использует кодировку LATIN-1 или windows по умолчанию): то есть документ XML является вопросом, который поврежден;или вызываемая вами служба возвращает неверное определение кодировки.В любом случае, служба возвращает вам неверную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...