반응형
기존의 Volley를 Retrofit2로 교체하고 나서 간혹 API들이 두 번 혹은 세 번까지도 중복 콜이 발생한 경우가 서버 쪽에서 확인되었다.
원인은 바로 OkHttpClient의 retryOnConnectionFailure에 있었다.
이 옵션은 기본값이 true로 되어있는데 이 옵션이 활성화되어 있다면 OkHttpClient가 네트워크 상황이 불안정할 때 Retry를 시도하게 된다.
근데 문제는 Retrofit2에서 API 호출을 한 번만 했음에도 불구하고 그 안에 세팅해준 OkHttpClient 때문에 클라이언트 개발자도 모르게 자동으로 여러 번 API를 동시에 생성할 수 있다는 것이었다.(본인도 서버 개발자가 알려줘서 알게 됨)
OkHttpClient의 버그는 아니고 OkHttpClient의 기본값으로 쓰면서 Retrofit2와 같이 쓰면 생기는 문제인 것 같다.
해결은 이 값을 false로 주면 된다.
참고 : https://medium.com/inloopx/okhttp-is-quietly-retrying-requests-is-your-api-ready-19489ef35ace
반응형
'Android > 기타' 카테고리의 다른 글
[Android] Retrofit2 재시도 로직 넣기 (0) | 2020.05.20 |
---|---|
[Android] 인앱 결제 구현 Flow 정리 (0) | 2020.04.28 |
[Android] Firebase Crashlytics 연동하기 (0) | 2020.03.05 |
[Android] 인앱 결제가 안 될 때 체크해야 할 사항 (0) | 2020.03.03 |
[Android] Retrofit2 Gson 사용 시 주의사항 (0) | 2020.02.28 |