Політика повторного запиту на запит не враховує час очікування


11

Я встановив 1500 як початковіTimeoutM в DefaultRetryPolicy, як показано нижче, але він не враховує час очікування:

request.setRetryPolicy(new DefaultRetryPolicy(1500
        , DefaultRetryPolicy.DEFAULT_MAX_RETRIES
        , DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

Я відключив Wi-Fi на своєму пристрої, щоб перевірити його таймаут, і я побачив ці дані в Logcat :

2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError

Це зайняло більше 20 секунд, а я очікував, що я впіймаю або onResponse, або onError через 1,5 секунди !!!


Я вважаю, що є логіка повторного використання після виходу з бака. Таким чином, запит надсилається, через 1,5 секунди він вичерпується, а потім повторюється через деякий випадковий час. Загальна кількість пенсіонерів - DefaultRetryPolicy.DEFAULT_MAX_RETRIES
Abhishek

яке значення для max_tries та backoff_multiplies?
Каран

Вони мають значення за замовчуванням. у DefaultRetryPolicy.java:public static final int DEFAULT_MAX_RETRIES = 1; public static final float DEFAULT_BACKOFF_MULT = 1f;
Аліреза Нооралі

Відповіді:



0

Використовуйте 5 секунд, тому що 15 секунд - це набагато більше, щоб дати тайм-аут.

int TIME_OUT = 500; //use 5 sec it will work fine with it..

request.setRetryPolicy(new DefaultRetryPolicy(
    TIME_OUT, 
    DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.