浅谈Android网络封装框架Retrofit

本文详细探讨了Android中Retrofit网络封装框架的使用,包括如何构造Retrofit实例,理解Query、QueryMap、Field、FieldMap、Part和PartMap等参数的用法。此外,还特别介绍了如何利用Retrofit进行文件上传,指出@Multipart与@FormUrlEncoded的区别,并提供了接口的使用示例。
摘要由CSDN通过智能技术生成
开源框架地址:https://github.com/square/retrofit 
英文文档官网:http://square.github.io/retrofit/
RxJava框架:https://github.com/ReactiveX/RxJava 
okhttp框架:https://github.com/square/okhttp 



在对Android 开发中,我们都是从原生的 HttpUrlConnection到经典的 Apache公司的HttpClient,再到对前面这些网络基础框架的封装(比如VolleyAsyncHttpClient等)。Http请求相关开源框架还是很多的,今天我们讲解 Square 公司开源的Retrofit。Square 公司的框架总是一如既往的简洁优雅!Retrofit更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。 
Retrofit是一个 RESTful 的 HTTP 网络请求框架的封装。注意这里并没有说它是网络请求框架,主要原因在于网络请求的工作并不是Retrofit来完成的。Retrofit2.0 开始内置OkHttp,前者专注于接口的封装,后者专注于网络请求的高效,二者分工协作!
我们的应用程序通过 Retrofit请求网络,实际上是使用Retrofit接口层封装请求参数、Header、Url 等信息,之后由OkHttp完成后续的请求操作,在服务端返回数据之后,OkHttp将原始的结果交给Retrofit,后者根据用户的需求对结果进行解析的过程。
Retrofit的使用就像它的编码风格一样,非常简单,首先你需要在你的 build.gradle 中添加依赖:
compile 'com.squareup.retrofit2:retrofit:2.0.2'
加入我们想要访问 GitHub 的 api 对,那么我们就定义一个接口:
接口当中的listRepos方法,就是我们想要访问的api了,在发起请求时,{user}会被替换为方法的第一个参数user。
Retrofit支持的协议包括GET/POST/PUT/DELETE/HEAD/PATCH,当然你也可以直接用HTTP来自定义请求。这些协议均以注解的形式进行配置例如下面GET:
public interface GitHubService { 
	@GET("users/{user}/repos") 
	Call<List<Repo>> listRepos(@Path("user") String user); 
}
这些注解都有一个参数 value,用来配置其路径,比如示例中的 users/{user}/repos,我们还注意到在构造Retrofit之时我们还传入了一个baseUrl("https://api.github.com/"),请求的完整 Url 就是通过baseUrl与注解的value(下面称 “path“ ) 整合起来的,具体整合的规则如下:
path是绝对路径的形式:
path =
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值