外观
OkHttp 与 Retrofit 分别做什么?
标准回答
OkHttp 是 HTTP 客户端,处理连接、请求响应、缓存和拦截器;Retrofit 用接口与注解描述 API,再通过 OkHttp 等调用机制发送请求,并由转换器处理数据。
关键机制
- 一次请求可经历 DNS、建连、TLS、发送、服务端处理、响应读取;复用连接能减少重复握手。
- 拦截器适合统一认证、请求标识和日志;日志应避免输出令牌、密码与完整个人数据。
- 需要连接、读取、写入和整体调用超时;页面退出时应取消不再需要的请求,错误分为网络、HTTP 与业务错误。
通俗例子
调用 getDevices 后,Retrofit 根据注解生成 URL,OkHttp 发出请求,JSON 转换器生成数据对象,Repository 决定如何缓存,ViewModel 转成页面状态。
易混淆点
HTTP 200 不保证业务成功;能重试不代表能盲目重试,带副作用的请求要考虑幂等。
参考资料
内容来源
- Android 技术札记 · 原条目
http