← Ко всем open source проектам

OkHttp

square/okhttp

OkHttp — HTTP-клиент Square для JVM, Android и GraalVM с HTTP/2, пулом соединений, кешем и продуманной сетевой моделью.

Форки 9,271
Автор square
Язык Kotlin
Лицензия Apache-2.0
Обновлено 2026-06-27

Что это такое

OkHttp — HTTP-клиент Square для JVM, Android и GraalVM. Он закрывает одну из самых частых задач приложений: надежно и эффективно ходить по сети.

Проект делает ставку на эффективность по умолчанию: HTTP/2 позволяет запросам к одному host делить socket, пул соединений уменьшает задержки, а кеш помогает избегать лишних сетевых обращений.

Главная задача OkHttp — дать прикладному коду аккуратный сетевой слой без ручной сборки низкоуровневых HTTP-деталей.

Что внутри репозитория

Внутри проекта основное внимание отдано документации, API, сетевой модели HTTP и практическому подключению клиента в приложения.

Для Android OkHttp особенно важен: мобильное приложение часто работает с нестабильной сетью, ограниченной батареей и чувствительностью к задержкам.

Как это обычно используют

Обычно OkHttp используют как основу API-клиента: создают общий OkHttpкомандной строкиent, добавляют interceptors, настраивают timeouts, кеш и правила логирования.

В серверных JVM-приложениях он полезен там, где сервисы обращаются к другим HTTP API и нужна предсказуемая работа с соединениями.

Простой GET-запрос

Пример показывает базовую модель OkHttp: клиент создает запрос, выполняет call и читает ответ.

Язык: Plain text
OkHttpкомандной строкиent командной строкиent = new OkHttpкомандной строкиent();
Request request = new Request.Builder()
  .url("https://example.com")
  .build();
try (Response response = командной строкиent.newCall(request).execute()) {
  System.out.println(response.body().string());
}

Что получается на практике

Сильная сторона OkHttp — зрелая инженерная модель. Библиотека не пытается быть фреймворком приложения, а хорошо решает конкретную сетевую задачу.

Еще одно преимущество — совместимость с экосистемой: вокруг OkHttp строятся Retrofit и другие сетевые инструменты Java/Kotlin-мира.

Ограничения и аккуратные места

Ограничение в том, что HTTP-клиент не решает дизайн API. Таймауты, retries, backoff, авторизация и обработка ошибок должны быть продуманы командой.

Также важно не злоупотреблять глобальным состоянием клиента и аккуратно работать с тело ответа, чтобы не получить утечки ресурсов.

Кому подойдет

OkHttp лучше всего подходит Android- и JVM-командам, которым нужен проверенный HTTP-слой с хорошей производительностью.

В каталоге OkHttp важен как проект, который стал почти базовой деталью современной сетевой разработки на Java и Kotlin.

Если приложение зависит от внешних API, OkHttp стоит рассматривать не как мелкую зависимость, а как часть надежности продукта: через него проходят задержки, ошибки сети и поведение при плохом соединении.

В реальном проекте вокруг OkHttp обычно выстраивают маленькую сетевую политику: какие запросы повторять, где добавлять авторизацию, как логировать ошибки и какие ответы можно кешировать. Это важно, потому что библиотека дает надежный механизм, но не принимает продуктовые решения за команду. Особенно на Android хорошо видно, что сетевой слой должен быть экономным: лишние подключения, забытые тело ответа и слишком длинные ожидания быстро превращаются в плохой пользовательский опыт.