Типобезопасный HTTP-клиент для Android и Java, который превращает методы интерфейса с аннотациями в сетевые вызовы.
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
Добавьте зависимость OkHttp в сборку Gradle
implementation("com.squareup.okhttp3:okhttp:5.5.0") - 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 обновляется ежедневно.
Похожие проекты
Высокопроизводительный веб-сервер, обратный прокси, балансировщик нагрузки, API-шлюз и кэш контента, написанный на C.
Интерактивный прокси для перехвата HTTP-трафика с поддержкой TLS и интерфейсами для консоли, командной строки и браузера.
CLI-инструмент для извлечения TLS/SSL-сертификатов с серверов и экспорта в PEM, DER или truststore.
Самостоятельно размещаемый туннель на Go, который открывает доступ к локальным сервисам из интернета через ваш домен и сервер.
Java-реализация Apache Dubbo — RPC- и микросервисного фреймворка для связи между сервисами, обнаружения сервисов и управления трафиком.