Repolode
lysine-dev

lysine-dev/okhttp

JVM, Android, GraalVM용 HTTP 클라이언트로, 연결을 재사용하고 HTTP/2를 지원하며 응답을 기본적으로 캐시합니다.

스타
47,090
포크
9,298
열린 이슈
148
마지막 커밋
2시간 전

어떤 프로젝트인가요?

OkHttp는 Java, Kotlin, Android 애플리케이션을 위한 HTTP 클라이언트입니다. 기본 설정만으로도 효율적으로 동작하도록 설계되어, 동일한 호스트로 보내는 요청은 HTTP/2에서 하나의 소켓을 공유할 수 있고, HTTP/2를 사용할 수 없으면 연결 풀을 활용합니다. 응답은 자동으로 gzip 압축이 해제되며, 반복 요청은 네트워크에 접속하지 않고 응답 캐시에서 처리할 수 있습니다.

또한 네트워크 상태가 불안정한 상황도 처리합니다. 서비스가 여러 IP 주소로 해석되면 연결에 실패한 뒤 다른 주소로 재시도합니다. TLS 1.3, ALPN, 인증서 핀 고정을 지원하며, API는 fluent builder와 불변 요청·응답 객체를 사용합니다. 호출은 동기식 또는 콜백을 사용하는 비동기식으로 실행할 수 있습니다.

이 프로젝트는 최신 HTTP 사양(RFC 9110~9113, WebSocket, server-sent events)을 따르며, 코루틴, 로깅, SSE, DNS over HTTPS용 보조 모듈과 클라이언트 테스트를 위한 MockWebServer를 제공합니다. Android 5.0 이상과 Java 8 이상에서 실행되며, GraalVM 네이티브 이미지로 빌드할 수도 있습니다.

핵심 기능

  • 01연결 풀링과 HTTP/2 멀티플렉싱으로 동일한 호스트에 반복 요청을 보낼 때 지연 시간을 줄입니다.
  • 02GZIP 압축을 자동으로 해제하고 응답을 캐시해 중복 다운로드를 방지합니다.
  • 03연결 시도에 실패하면 다른 IP 주소로 재시도합니다.
  • 04TLS 1.3, ALPN, 인증서 핀 고정을 지원하며 Java에서 Conscrypt를 사용할 수 있습니다.
  • 05불변 요청·응답 객체를 기반으로 동기식 및 비동기식 호출 API를 제공합니다.
  • 06HTTP, HTTPS, HTTP/2 클라이언트 테스트에 사용할 수 있는 MockWebServer를 포함합니다.

활용 사례

  • Java, Kotlin 또는 Android 앱에서 REST 또는 JSON API 호출하기.
  • 압축과 캐싱으로 대역폭을 절약하며 대용량 미디어나 파일 다운로드하기.
  • GraalVM으로 네이티브 명령줄 HTTP 도구 빌드하기.
  • 모의 HTTP 서버를 대상으로 통합 테스트 작성하기.

빠른 시작

  1. 1

    Gradle 빌드에 OkHttp 종속성을 추가합니다

    implementation("com.squareup.okhttp3:okhttp:5.5.0")
  2. 2

    OkHttpClient를 만들고 README의 ‘Get a URL’ 예제를 사용해 요청을 보냅니다

사용 전 알아둘 점

  • 본문이 포함된 GET 요청은 허용되지 않습니다.
  • 응답 캐시는 다른 구현으로 대체할 수 있는 인터페이스가 아닙니다.
  • Maven 설정에서는 okhttp-jvm 또는 okhttp-android를 선택해야 합니다. okhttp 아티팩트가 비어 있기 때문입니다.

토픽

자주 묻는 질문

okhttp은(는) 무엇인가요?
JVM, Android, GraalVM용 HTTP 클라이언트로, 연결을 재사용하고 HTTP/2를 지원하며 응답을 기본적으로 캐시합니다. OkHttp는 Java, Kotlin, Android 애플리케이션을 위한 HTTP 클라이언트입니다. 기본 설정만으로도 효율적으로 동작하도록 설계되어, 동일한 호스트로 보내는 요청은 HTTP/2에서 하나의 소켓을 공유할 수 있고, HTTP/2를 사용할 수 없으면 연결 풀을 활용합니다. 응답은 자동으로 gzip 압축이 해제되며, 반복 요청은 네트워크에 접속하지 않고 응답 캐시에서 처리할 수 있습니다.
okhttp은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
okhttp은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
okhttp은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. okhttp의 마지막 커밋은 2026년 10월 21일입니다.
okhttp은(는) 어디에 사용할 수 있나요?
Java, Kotlin 또는 Android 앱에서 REST 또는 JSON API 호출하기. 압축과 캐싱으로 대역폭을 절약하며 대용량 미디어나 파일 다운로드하기. GraalVM으로 네이티브 명령줄 HTTP 도구 빌드하기. 모의 HTTP 서버를 대상으로 통합 테스트 작성하기.
okhttp는 어떻게 설치하나요?
Gradle 빌드에 OkHttp 종속성을 추가합니다: implementation("com.squareup.okhttp3:okhttp:5.5.0") OkHttpClient를 만들고 README의 ‘Get a URL’ 예제를 사용해 요청을 보냅니다
okhttp은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/lysine-dev/okhttp

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트