Максимальный размер ответа HTTP в Volley Android - PullRequest
0 голосов
/ 17 мая 2018

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

Когда ответ сервера имеет более «нормальный» размер, все работает, но с большой полезной нагрузкой Волей выбрасывает NetworkError без каких-либо подробностей и регистрирует странное сообщение - BasicNetwork.performRequest: Unexpected response code 200.

Я почти уверен, что проблема связана с размером ответа, поэтому мой вопрос заключается в том, существует ли известное ограничение размера HTTP-запроса / ответа в Android / Volley или настройка для его изменения.Я знаю, что некоторые HTTP-библиотеки имеют его.

Я знаю, что с сервером все в порядке, так как другие клиенты используют ту же конечную точку сервера таким же образом.

Я начал отладку внутри кода библиотеки и обнаружил, чточто код ответа действительно 200 и принимаются правильные данные.Содержимое запроса копируется из потока ответа порциями, но в какой-то момент что-то идет не так при копировании.

Это самое близкое к исходному исключению, которое я мог бы получить.Очевидно, java.net.ProtocolException иногда генерируется во время цикла while в первой точке останова, показанной на рисунке.Вы также можете видеть фактическое содержимое JSON.

original exception

Затем это исключение обрабатывается и перебрасывается еще пару раз:

enter image description here

...