抓取 OkHttp 流量
🌐 OkHttp 是 Android 最流行的 HTTP 客户端,r0capture 抓它的最佳实践。
OkHttp 的流量特点
- 默认走系统 SSL 栈(Conscrypt/BoringSSL),最终调
SSL_read/write - 支持连接池复用(长连接)
- 支持 HTTP/2(多路复用)
r0capture 抓取
OkHttp 最终走 native SSL,r0capture 的 SSL hook 直接覆盖:
bash
r0capture -H 127.0.0.1:8888 -p -OkHttp.pcap com.example.app无需针对 OkHttp 特殊处理,它就是普通 TLS 流量。
可能的坑
| 现象 | 原因 | 解决 |
|---|---|---|
| 抓不到 | OkHttp 用了 OkHttp 自带 TLS(非系统) | setssllib 指定其 libssl |
| 连接池重连刷屏 | 长连接保活 | 正常,可过滤 |
| HTTP/2 多路复用 | 一条连接多请求 | pcap 里看 stream id |
CertificatePinner
OkHttp 内置 CertificatePinner 做 Pinning。但 r0capture 不做中间人,Pinning 对 r0capture 抓包无影响——详见 SSL Pinning。