아래와 같이 DefaultRetryPolicy 에서 1500을 initialTimeoutMs 로 설정 했지만 시간 초과를 고려하지 않습니다.
request.setRetryPolicy(new DefaultRetryPolicy(1500
, DefaultRetryPolicy.DEFAULT_MAX_RETRIES
, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
시간 초과 여부를 테스트하기 위해 장치에서 WiFi를 분리하고 Logcat 에서 다음 시간을 보았습니다 .
2019-12-16 14:28:15.892 I/MyClass: request sent
2019-12-16 14:28:35.930 I/MyClass: request caught onError
1.5 초 후에 onResponse 또는 onError를 잡을 것으로 예상되는 동안 20 초 이상 걸렸습니다!
백 오프 후 재시도 로직이 있다고 생각합니다. 따라서 요청은 1.5 초 후에 시간 초과 된 후 임의의 시간 후에 다시 시도됩니다. 전체 은퇴의 수는 DefaultRetryPolicy.DEFAULT_MAX_RETRIES입니다
—
Abhishek 란잔
max_tries 및 backoff_multiplies의 값은 무엇입니까?
—
카란 Khurana
둘 다 기본값이 있습니다. DefaultRetryPolicy.java에서 :
—
Alireza Noorali
public static final int DEFAULT_MAX_RETRIES = 1;
public static final float DEFAULT_BACKOFF_MULT = 1f;