Получение неполных XML-данных от веб-сервиса - PullRequest
0 голосов
/ 20 февраля 2012

Я отправляю запрос POST в веб-сервис, который возвращает данные в формате XML.Когда я вызываю веб-сервис через браузер, я вижу полный XML-файл.Однако когда я вызываю веб-сервис из моего приложения для Android (в эмуляторе), я получаю только частичные данные XML?

Размер отправляемого файла XML составляет около 14500 байт.Сначала я храню ответ в байтовом массиве, размер которого я вычисляю с помощью функции getContentLength().Этот метод возвращает правильный размер ответа.

Однако my InputStreamReader считывает приблизительно 6350 байтов фактических данных в байтовый массив.Оставшаяся часть байтового массива просто содержит нули.

Я пытался искать везде в Интернете, но до сих пор не нашел решения.Да, чанкинг - это один из вариантов, но, поскольку у меня нет доступа к коду веб-службы, я не могу реализовать эту опцию.

Действительно ценю, если кто-то может мне здесь помочь!

1 Ответ

1 голос
/ 20 февраля 2012

Я не понимаю, почему вам нужно использовать InputStreamReader (который может вести себя очень неправильно, если вы не будете осторожны) для чтения данных веб-службы (в вашем случае это всего около 14,5 КБ). Просто используйте HttpURLConnection, подключитесь к своему ws, и он позаботится о вас, а также ответит connection.getResponseMessage();

...