Retrofit Network Time out

2023. 12. 15. 11:12·Android

안드로이드에서 서버로 이미지를 전송하기 위해 REST API로 통신 하는 과정에서 시간이 오래 걸려 Android Client에서 connection Error로 인식해 오류가 발생 했습니다. Retrofit은 기본적인 네트워크 타임아웃 설정을 가지고 있지만 다양한 상황에서 기본 타임아웃 시간을 변경해야 합니다.

Retrofit의 기본 타임아웃 시간 설정값

  • Connection timeout : 10초
  • Read timeout : 10초
  • Write timeout : 10초

Connection Timeout

네트워크  요청을 시작한 후 서버와의 TCP handshake가 완료되기까지 지속되는 시간으로  Retrofit이 설정된 연결 시간 제한 내에서 서버에 연결할 수없는 경우 해당 요청을 실패한 것으로 계산합니다. 이는 클라이언트가 서버와의 연결을 설정하고 완료하기 위해 10초 동안 대기하는 것을 의미합니다. 그러나 네트워크 환경이 좋지 않은 경우에는 이 기본 값이 부족할 수 있습니다. 사용자의 인터넷 연결 상태가 좋지 않을 때, 더 긴 시간을 설정하여 서버에 연결할 수 있도록 대기하는 시간을 늘릴 수 있습니다. 이를 통해 클라이언트는 좀 더 많은 시간 동안 서버와의 연결을 시도할 수 있게 됩니다.

Read Timeout

서버가 클라이언트에게 응답을 완료하고 모든 데이터를 전송하는 데까지 대기할 최대 시간을 나타냅니다.

Write Timeout

클라이언트가 서버로 데이터를 보내는 데 걸리는 최대 시간을 나타냅니다.

private var okHttpClient: OkHttpClient = OkHttpClient.Builder()
    .connectTimeout(30, TimeUnit.MINUTES)
    .readTimeout(30, TimeUnit.SECONDS)
    .writeTimeout(30, TimeUnit.SECONDS)
    .build()

private val client: Retrofit = Retrofit
    .Builder()
    .baseUrl(BASE_URL)
    .client(okHttpClient)
    .addConverterFactory(GsonConverterFactory.create())
    .build()

 

'Android' 카테고리의 다른 글

Android Runtime Permission  (1) 2023.12.17
OkHTTP httpLoggingInterceptor  (2) 2023.12.15
안드로이드 HTTP 보안 정책  (0) 2023.12.14
Android Network Programming 2  (0) 2023.12.14
Android Network Programming 1  (2) 2023.12.13
'Android' 카테고리의 다른 글
  • Android Runtime Permission
  • OkHTTP httpLoggingInterceptor
  • 안드로이드 HTTP 보안 정책
  • Android Network Programming 2
빨주노초잠만보
빨주노초잠만보
  • 빨주노초잠만보
    과거의 나를 통해 미래의 나를 성장시키자
    빨주노초잠만보
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • 우아한테크코스 (6)
      • TEKHIT ANDROID SCHOOL (4)
      • Android Architecture (8)
      • Android (38)
      • PROJECT (11)
      • KOTLIN (10)
        • 코루틴의 정석 (3)
      • BACK END (12)
      • CS (4)
      • 컨퍼런스 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ThrottleFirst
    Throttle
    callbackflow
    android Room
    view 생명주기
    Compose Typography
    DataSource
    STATEFLOW
    repository
    thread Context Switching
    coroutine Context Switching
    android clean architecture
    Two pass process
    sealed class
    2025 우아콘 후기
    MVI
    컴포즈 디자인 시스템
    value class
    코틀린 코루틴의 정석
    retrofit call
    Clean Architecture
    android view lifecylce
    Room
    Repository Pattern
    의존성 주입
    DI
    안드로이드 디자인 시스템
    orbit
    process Context Switching
    flow
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
빨주노초잠만보
Retrofit Network Time out
상단으로

티스토리툴바