1

Я использую сетевую библиотеку Google Volley для выполнения набора операций. В частности, я полагаюсь на StringRequest, чтобы получить HTML-код некоторых защищенных страниц. Чтобы выполнить (аутентифицированный) запрос, я всегда добавляю к запросу набор файлов cookie.Почему иногда StringRequest от Volley дает мне пустой ответ?

Проблема в том, что без видимых причин Volley иногда дает мне пустой исходный код! (и это БЕЗ кода статуса 204: это чистый 200).

@Override 
protected Response<String> parseNetworkResponse(NetworkResponse response) { 
    // HERE: response.data sometimes has size 0! 
    // on the other hand, response.statusCode is 200. 
    // [...] 
} 

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

Я ДЕЙСТВИТЕЛЬНО соблазн переключиться на что-то написанное ad hoc для того, чтобы все время решить, но многопоточные функции, которые Volley реализует из коробки, по-прежнему являются огромным фактором, который удерживает меня.

+0

Вы пробовали использовать HTTP-прокси, такие как Charles или Fiddler2, чтобы убедиться, что вы получаете правильное тело ответа? – rmtheis

ответ

0

Что касается TimeoutError, вы установили политику повтора? Например, с

 stringRequest.setRetryPolicy(new DefaultRetryPolicy(
      60000, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 
Смежные вопросы