В одном из моих приложений я отправляю запрос на сервер с помощью volley
, предоставляемого Google.
Проблема: объект ожидания и ошибки имеет значение null на onErrorResponse(VolleyError error)
Что я пробовал до сих пор:
1) Сначала я получил нулевой объект ошибки, поэтому решил его использовать с помощью кода ниже:
@Override
protected void deliverResponse(String response) {
super.deliverResponse(response);
}
@Override
public void deliverError(VolleyError error) {
super.deliverError(error);
DebugLog.e("deliverResponse", "getNetworkTimeMs : " + error.getNetworkTimeMs());
}
До сих пор я обнаружил, что существует timeout
, когда я получил объект ошибки null
.
2) Теперь приложение предназначено для Android
и iOS
и web
, но timeout
происходит только для Android
.
Журнал волейбола для запросов:
BasicNetwork.logSlowRequests: HTTP response for request
Отредактированное примечание:
-
Веб-службы, созданные на сервере, одинаковы для всех трех экземпляров (Android, Web и iOS).
-
timeout
происходит, когда слишком много пользователей делают запросы на сервер. -
Я установил время до 2 минут, хотя волейбол бросает таймаут за 30 секунд только иногда.
-
У меня есть много ответов на изменение сервера, но так как это невозможно, так что любое другое решение, пожалуйста.
Я также хотел бы добавить, что если я могу получить больше информации о том, когда таймаут может быть возможен в залпе?
Ссылки Я прошел через:
httpclient-often-times-out-using-wifi-is-going-fine-with-3g
long_xmlhttprequest_ajax_requests_timeout_on_android
Отредактировано:
Я также установил политику повтора, как показано ниже:
request.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 48,
0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
А также я не хочу повторять, если время ожидания соединения.
Как я могу сделать эффективный вызов службы, который может решить проблему для timeout
.
Любая помощь будет назначена.
Спасибо.