숨참고 개발다이브

[안드로이드/오류] API 통신 시 발생하는 SocketTimeoutException 본문

개발/Android

[안드로이드/오류] API 통신 시 발생하는 SocketTimeoutException

뚀니 Ddoeni 2022. 6. 6. 10:55
728x90

개발환경에서는 보기 어려운 오류이지만 간혹 통신상태가 고르지 못한 사용자들이 있어 플레이스토어 비정상 종료 로그에 남아있는 걸 확인할 수 있었다.

 

java.net.SocketTimeoutException: 
  at okio.Okio$4.newTimeoutException (Okio.java:232)
  at okio.AsyncTimeout.exit (AsyncTimeout.java:285)
  at okio.AsyncTimeout$2.read (AsyncTimeout.java:241)
  at okio.RealBufferedSource.indexOf (RealBufferedSource.java:354)
  
(...)

 

말 그대로 서버 통신 시 Timeout때문에 발생하는 오류이다.

기본적으로 connectTimeout은 10초로 설정되어 있기 때문이다.

 

 

OkHttpClient 설정 시 connectTimeout, readTimeout, writeTimeout을 설정해주면 된다.

사용 방법은 connectTimeout( timeout: Long, unit: TimeUnit )이다.

 OkHttpClient.Builder()
    .connectTimeout( 100, TimeUnit.SECONDS )
    .readTimeout( 100, TimeUnit.SECONDS )
    .writeTimeout( 100, TimeUnit.SECONDS )
    .build()
300x250
Comments