Android面试题——掘金-三方框架之retrofit(5.1)
一 概述
1 | Retrofit 面试题汇总 |
二 面试题解答(仅供参考)
2.1 Retrofit 是什么?它的核心作用是什么?
1 | Retrofit 是 Square 开源的一个 网络请求框架, |
2.2 Retrofit 和 OkHttp 的关系?
1 | -Retrofit 是一个 基于 OkHttp 的封装库。 |
2.3 Retrofit 的请求流程是怎样的?
1 | -使用 @GET/@POST/... 注解定义接口; |
2.4 Retrofit 支持哪些注解?(常见)
1 | -请求方式:@GET、@POST、@PUT、@DELETE… |
2.5 Retrofit 的数据转换是如何实现的?
1 | 通过 Converter.Factory 实现数据转换: |
2.6 Retrofit 支持哪些返回类型?
1 | 通过 CallAdapter.Factory 支持以下返回值类型: |
2.7 Retrofit 是否支持文件上传和下载?
1 | 支持! |
2.8 Retrofit 中如何添加通用参数或 Header?
1 | -通过 @Header 或 @Query 注解传入; |
2.9 Retrofit 的动态代理原理?
1 | Retrofit 使用 Java 的 动态代理(Proxy) 实现接口的调用: |
2.10 Retrofit 是否线程安全?
1 | Retrofit 实例是线程安全的,但不建议频繁创建。 |
2.11 Retrofit 如何实现请求重试?
1 | 可以通过 OkHttp 的 Interceptor 实现重试逻辑: |
2.12 Retrofit 如何处理错误(错误码、异常)?
1 | -HTTP 错误(如 4xx/5xx):通过 response.isSuccessful 判断 |
2.13 总结
知识点 | 内容 |
---|---|
核心架构 | Retrofit + OkHttp + 动态代理 + 注解解析 |
扩展性 | 支持自定义 Converter、CallAdapter |
适配性 | 支持协程、RxJava、LiveData 等 |
性能 | 基于 OkHttp,高效、稳定 |
场景 | REST API、文件上传下载、动态参数拼接 |
三 参考
- 掘金—知识库的大纲