OkHttp 1/3/4
🟢 最流行的 Android HTTP 客户端,r0capture 通杀所有版本。
各版本
| 版本 | 包名 | 特征 |
|---|---|---|
| OkHttp 1 | com.squareup.okhttp | 老版本 |
| OkHttp 3 | okhttp3 | 主流 |
| OkHttp 4 | okhttp3(Kotlin 重写) | 当前主流 |
为什么通杀
OkHttp 底层用 Java 的 SSLSocket,最终走到系统的 SSLOutputStream/SSLInputStream(Conscrypt)→ Native SSL_write/SSL_read。r0capture 在 Native 层 hook,所有版本一视同仁。
调用栈特征
OkHttp 的栈很有辨识度,多层拦截器链:
at okhttp3.internal.connection.RealCall.callServer(RealCall.kt)
at okhttp3.internal.connection.RealCall.execute(RealCall.kt)
at com.app.api.ApiService.post(ApiService.java:42)
...看到 okhttp3.internal.* 即可确认是 OkHttp。
User-Agent 特征
OkHttp 默认 User-Agent: okhttp/4.x.x(除非 App 覆盖)。
HTTP/2 协商
OkHttp 默认协商 HTTP/2(h2 over TLS)。若服务端支持 h2,r0capture 抓到的是 HTTP/2 帧(详见 HTTP/2 限制);若协商降级到 HTTP/1.1,则抓到标准 HTTP 文本。