Retrofit
🔧 声明式 HTTP 客户端,基于 OkHttp,r0capture 通杀。
概述
Retrofit 是 Square 的声明式 HTTP 客户端,底层用 OkHttp 做实际请求:
因为底层就是 OkHttp,所以 OkHttp 文档 的全部结论都适用。
调用栈特征
at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall.execute(...)
at okhttp3.internal.connection.RealCall.execute(...)
at com.app.api.ApiService$Api.getUsers(ApiService.java)栈里同时出现 retrofit2.* 和 okhttp3.*,是 Retrofit 的典型特征。
注解与序列化
Retrofit 把接口方法注解(@GET/@POST/@Body/@Query)转成 OkHttp 请求。序列化(Gson/Moshi/Protobuf)发生在 OkHttp 调用之前——r0capture 抓到的是序列化之后的请求体。
- Gson/Moshi:抓到 JSON 文本
- Protobuf 转换器:抓到 Protobuf 二进制