Я использую Volley для вызова сервера, который в некоторых случаях может вернуть большой ответ - несколько мегабайт JSON.
Когда ответ сервера имеет более «нормальный» размер, все работает, но с большой полезной нагрузкой Волей выбрасывает NetworkError
без каких-либо подробностей и регистрирует странное сообщение - BasicNetwork.performRequest: Unexpected response code 200
.
Я почти уверен, что проблема связана с размером ответа, поэтому мой вопрос заключается в том, существует ли известное ограничение размера HTTP-запроса / ответа в Android / Volley или настройка для его изменения.Я знаю, что некоторые HTTP-библиотеки имеют его.
Я знаю, что с сервером все в порядке, так как другие клиенты используют ту же конечную точку сервера таким же образом.
Я начал отладку внутри кода библиотеки и обнаружил, чточто код ответа действительно 200
и принимаются правильные данные.Содержимое запроса копируется из потока ответа порциями, но в какой-то момент что-то идет не так при копировании.
Это самое близкое к исходному исключению, которое я мог бы получить.Очевидно, java.net.ProtocolException
иногда генерируется во время цикла while в первой точке останова, показанной на рисунке.Вы также можете видеть фактическое содержимое JSON.
Затем это исключение обрабатывается и перебрасывается еще пару раз: