OkHttp 5.x(参考版本 5.4.0)是 Java/JVM 与 Android 平台的高效 HTTP 客户端,默认提供 HTTP/2、连接池、透明 GZIP 与响应缓存,并能自动恢复常见连接问题、在首次连接失败时尝试备用地址。
用途与主要能力:用于在 Java 或 Android 中发起 HTTP/HTTPS 请求、构建带连接池的 REST API 客户端、实现响应缓存、添加请求/响应拦截器(日志、鉴权、压缩)、配置 TLS 版本与密码套件、做证书绑定、用 EventListener 监控调用性能、用 MockWebServer 测试 HTTP 客户端,以及处理重定向、重试与认证挑战,并支持 HTTP/2 多路复用。
5.x 相较 4.x 的变化包括:Kotlin Multiplatform 拆分 JVM 与 Android 构件;默认启用 Happy Eyeballs(RFC 6555)快速回退;MockWebServer 3 使用新坐标 mockwebserver3;支持 GraalVM Native Image;支持 Java 9 模块(5.2+);支持 Java 21 虚拟线程;5.4 起拦截器可覆盖 OkHttpClient.Builder 设置;5.3 支持 Call tags;5.2 增加 Zstd 压缩模块与 QUERY 方法等。
使用方式:Gradle 通过 okhttp-bom 与 okhttp、logging-interceptor 引入;Maven(JVM)必须使用 okhttp-jvm 构件而非 okhttp。典型流程为先确认 Java 8+ 或 Android 5+,配置 OkHttpClient(超时、连接池、缓存、拦截器、TLS),构建 Request,再以同步 execute() 或异步 enqueue() 执行,最后处理状态码与响应体。
限制:不支持带请求体的 GET(应改用 POST);Cache 不是接口,自定义缓存需通过拦截器实现;严格遵循 RFC,不支持高度非法的 HTTP 请求;Android 5.0 以下应使用 OkHttp 3.12.x,Java 8 以下同样使用 3.12.x;证书绑定需与服务端 TLS 管理员协调。官方文档位于 square.github.io/okhttp/,其余未在资料中说明的内容暂未提供。