Repolode
lysine-dev

lysine-dev/okhttp

HTTP-клиент для JVM, Android и GraalVM с повторным использованием соединений, поддержкой HTTP/2 и кэшированием ответов по умолчанию.

Звёзды
47,090
Форки
9,298
Открытые issues
148
Последний коммит
5 часов назад

Что это?

OkHttp — HTTP-клиент для приложений на Java, Kotlin и Android. Он эффективен по умолчанию: запросы к одному хосту могут использовать общий сокет по HTTP/2, а если HTTP/2 недоступен, соединения берутся из пула. Ответы автоматически распаковываются из GZIP, а повторные запросы могут обслуживаться из кэша без обращения к сети.

Клиент умеет работать в нестабильных сетях. Если для сервиса найдено несколько IP-адресов, после неудачной попытки подключения OkHttp пробует другие. Он поддерживает TLS 1.3, ALPN и закрепление сертификатов. В API используются fluent builders и неизменяемые объекты запросов и ответов. Вызовы могут быть синхронными или асинхронными, с колбэками.

Проект следует современным спецификациям HTTP (RFC 9110–9113, WebSocket и Server-Sent Events) и включает дополнительные модули для корутин, логирования, SSE, DNS over HTTPS и MockWebServer для тестирования клиентов. Он работает на Android 5.0+ и Java 8+, а также может собираться в виде native image для GraalVM.

Ключевые возможности

  • 01Пул соединений и мультиплексирование HTTP/2 снижают задержки при повторных запросах к одному хосту.
  • 02Автоматическая распаковка GZIP и кэш ответов помогают избежать повторных загрузок.
  • 03При неудачной попытке подключения клиент переключается на другие IP-адреса.
  • 04Поддерживает TLS 1.3, ALPN и закрепление сертификатов; в Java можно использовать Conscrypt.
  • 05Предоставляет API для синхронных и асинхронных вызовов на основе неизменяемых объектов запросов и ответов.
  • 06Включает MockWebServer для тестирования клиентов HTTP, HTTPS и HTTP/2.

Сценарии использования

  • Вызов REST- или JSON API из приложения на Java, Kotlin или Android.
  • Загрузка больших медиафайлов или других файлов, когда сжатие и кэширование помогают экономить трафик.
  • Создание нативной HTTP-утилиты командной строки с помощью GraalVM.
  • Написание интеграционных тестов с использованием mock HTTP-сервера.

Быстрый старт

  1. 1

    Добавьте зависимость OkHttp в сборку Gradle

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

    Создайте OkHttpClient и отправьте запрос, используя пример «Get a URL» из README

Что важно знать

  • Не поддерживает GET-запросы с телом.
  • Кэш ответов не является интерфейсом с альтернативными реализациями.
  • В настройках Maven необходимо выбрать okhttp-jvm или okhttp-android, поскольку артефакт okhttp пуст.

Темы

Частые вопросы

Что такое okhttp?
HTTP-клиент для JVM, Android и GraalVM с повторным использованием соединений, поддержкой HTTP/2 и кэшированием ответов по умолчанию. OkHttp — HTTP-клиент для приложений на Java, Kotlin и Android. Он эффективен по умолчанию: запросы к одному хосту могут использовать общий сокет по HTTP/2, а если HTTP/2 недоступен, соединения берутся из пула. Ответы автоматически распаковываются из GZIP, а повторные запросы могут обслуживаться из кэша без обращения к сети.
okhttp можно использовать бесплатно? Какая у него лицензия?
okhttp распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
okhttp всё ещё поддерживается?
Активно поддерживается. Последний коммит в okhttp — 21 окт. 2026 г..
Для чего можно использовать okhttp?
Вызов REST- или JSON API из приложения на Java, Kotlin или Android. Загрузка больших медиафайлов или других файлов, когда сжатие и кэширование помогают экономить трафик. Создание нативной HTTP-утилиты командной строки с помощью GraalVM. Написание интеграционных тестов с использованием mock HTTP-сервера.
Как установить okhttp?
Добавьте зависимость OkHttp в сборку Gradle: implementation("com.squareup.okhttp3:okhttp:5.5.0") Создайте OkHttpClient и отправьте запрос, используя пример «Get a URL» из README
Где скачать okhttp?
Исходный код и инструкции по установке — на GitHub: https://github.com/lysine-dev/okhttp

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты