news 2026/7/1 13:48:52

Retrofit:Square 出品的 HTTP 客户端,43k+ Star

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Retrofit:Square 出品的 HTTP 客户端,43k+ Star

文章目录

  • Retrofit:Square 出品的 HTTP 客户端,43k+ Star

Retrofit:Square 出品的 HTTP 客户端,43k+ Star

Square 公司开源的 Retrofit,在 GitHub 上拿下了 43k+ 的 Star:

Retrofit 是一个适用于 Android 和 Java 的类型安全 HTTP 客户端。

这个库把 HTTP API 转换成 Java 接口,开发者只需要定义接口方法和注解,Retrofit 就能自动生成对应的网络请求实现。

Retrofit 的核心设计理念是通过注解来描述 HTTP 请求。支持 GET、POST、PUT、DELETE、PATCH 等常见请求方式,也支持 multipart 文件上传和表单提交。

这个库对 Android 开发者来说很熟悉,它和 OkHttp 配合使用,OkHttp 负责底层的网络通信,Retrofit 负责上层的 API 定义和数据转换。

Retrofit 支持多种数据格式的序列化和反序列化,包括 JSON、Protocol Buffers、XML 等。通过 Converter 机制,可以灵活接入 Gson、Moshi、Jackson 等第三方库。

环境要求

Retrofit 要求 Java 8 及以上版本,Android 项目需要 API 21 及以上。

安装方式

通过 Maven Central 引入依赖:

com.squareup.retrofit2:retrofit:3.0.0

也可以下载 JAR 文件直接集成。

开发中的快照版本可以在 Sonatype 的 snapshots 仓库获取。

基本使用

定义一个接口,用注解描述请求:

public interface GitHubService { @GET("users/{user}/repos") Call<List<Repo>> listRepos(@Path("user") String user); }

创建 Retrofit 实例并生成接口实现:

Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://api.github.com/") .build(); GitHubService service = retrofit.create(GitHubService.class);

调用接口方法就能发起网络请求,返回的 Call 对象支持同步和异步两种执行方式。

代码混淆

使用 R8 的项目不需要额外配置,混淆规则会自动包含。

使用 ProGuard 的项目需要手动添加 retrofit2.pro 文件中的规则,同时可能需要添加 OkHttp 的混淆规则。

Retrofit 采用 Apache License 2.0 开源协议,由 Square 公司维护,代码质量稳定,社区活跃度高。

实际应用场景

Retrofit 在 Android 项目中使用广泛。很多公司的 Android 客户端都用它作为网络层的基础库。

配合 RxJava 或 Kotlin 协程,可以优雅地处理异步请求和复杂的网络调用链。比如先登录获取 token,再用 token 请求用户信息,这种场景用 Retrofit 写出来很清晰。

支持自定义 Converter,如果项目用的是自定义的数据格式,也可以自己写转换器来处理。

与其他库的对比

相比原生的 HttpURLConnection,Retrofit 的 API 设计更现代,代码量更少。

相比 Volley,Retrofit 的扩展性更强,社区生态更丰富。

OkHttp 是 Retrofit 的底层依赖,两者配合使用效果最好。如果项目已经用了 OkHttp,加上 Retrofit 会让代码更简洁。

版本历史

Retrofit 从 2013 年开始维护,到现在已经十多年了。3.0 版本是一次大更新,对内部实现做了优化,API 保持了向后兼容。

Square 公司的开源库质量一直有保障,OkHttp、Picasso、LeakCanary 都是他们家的。

这个库的 Issue 区回复很及时,遇到问题基本都能找到解决方案。

are 公司的开源库质量一直有保障,OkHttp、Picasso、LeakCanary 都是他们家的。

这个库的 Issue 区回复很及时,遇到问题基本都能找到解决方案。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/1 13:46:43

SLO2016与PIC18F46K80构建工业级RS485通信方案

1. 项目背景与核心价值在工业控制和嵌入式通信领域&#xff0c;可靠的信息传递系统一直是工程师们追求的核心目标。SLO2016作为一款高性能串行通信协议芯片&#xff0c;搭配PIC18F46K80这款经典8位微控制器&#xff0c;能够构建出稳定高效的嵌入式通信解决方案。这套组合特别适…

作者头像 李华
网站建设 2026/7/1 13:45:49

EMQX服务部署

EMQX服务部署services:emqx:image: emqx/emqx:6.2.0container_name: emqxrestart: alwaysenvironment:- EMQX_NAMEemqx- TZAsia/Shanghaiports:# MQTT TCP- "1893:1883"# MQTT SSL/TLS- "8893:8883"# MQTT WebSocket- "8093:8083"# MQTT WebSock…

作者头像 李华
网站建设 2026/7/1 13:45:12

AI写作中的‘delve’指纹:语言模型的统计惯性与去模板化实践

1. 项目概述&#xff1a;当“delve”成为AI写作的指纹你有没有在读一段文字时&#xff0c;心里突然咯噔一下——这语气、这节奏、这用词&#xff0c;怎么越看越像ChatGPT写的&#xff1f;不是因为内容多高深&#xff0c;而是某个词像一枚小小的印章&#xff0c;反复盖在不同段落…

作者头像 李华
网站建设 2026/7/1 13:44:38

Windows Android子系统终极解决方案:WSABuilds完整指南

Windows Android子系统终极解决方案&#xff1a;WSABuilds完整指南 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root so…

作者头像 李华
网站建设 2026/7/1 13:40:11

基于KMR221与STM32的高精度电压监测方案

1. 项目概述&#xff1a;基于KMR221与STM32的智能电压管理方案在嵌入式系统开发中&#xff0c;精确的电压管理一直是硬件工程师面临的挑战。传统方案要么精度不足&#xff0c;要么成本过高。最近我在一个工业传感器项目中&#xff0c;尝试将KMR221电压检测模块与STM32F401RB控制…

作者头像 李华
网站建设 2026/7/1 13:38:11

简历代投值不值?一个技术岗校招生的时间成本量化分析

背景秋招季&#xff0c;网申填表是绕不开的环节。作为技术岗求职者&#xff0c;我习惯用ROI思维衡量每一件事的投入产出比。填了大概50家之后&#xff0c;我算了一笔账&#xff0c;也试了简历代投&#xff0c;以下是从效率、安全、心理三个维度做的客观记录。一、时间成本量化先…

作者头像 李华