用途:在 Android 项目中搭建并使用 Retrofit 进行类型安全的 HTTP 网络通信,遵循 2025 年现代实践。
主要能力: URL 操作:相对路径用 {name} 配合 @Path("name") 动态替换;单参数用 @Query("key"),动态参数集合用 @QueryMap Map<String, String>。 请求体与表单:@Body 按已配置转换器序列化对象为 JSON;@FormUrlEncoded 配合 @Field 发送 application/x-www-form-urlencoded;@Multipart 配合 @Part 发送 multipart/form-data。 请求头:@Headers 设置静态头,@Header 设置动态头,@HeaderMap 设置头映射,OkHttp Interceptor 设置全局头。 协程与响应:suspend 函数可直接返回反序列化实体(非 2xx 抛 HttpException),或返回 Response<T>(不抛异常,可读取状态码、响应头与错误体)。 配置:在 Hilt 模块中以单例提供 Retrofit、OkHttpClient 与 Json;Json 可设置 ignoreUnknownKeys、coerceInputValues;OkHttpClient 可加日志拦截器与超时。 错误处理:在 Repository 层用 runCatching 等方式捕获网络异常,保持 UI 状态干净,并可将 DTO 映射为领域模型。
使用方式:按接口定义 API 服务(suspend 函数),经 Hilt 注入 Retrofit 实例,在仓库层调用并处理异常。代码示例中 baseUrl 使用 https://api.github.com/。
限制与检查清单:所有网络调用使用 suspend 函数;需要处理具体状态码(如 401)时优先用 Response<T>;用 @Path 和 @Query 替代手工拼接 URL;为 OkHttpClient 配置调试日志与合理超时;将 API DTO 映射为领域模型以解耦层级。资料未提供具体版本、依赖坐标、安装命令及平台兼容性细节,暂未提供。