Retrofit网络框架介绍
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Retrofit网络框架介绍相关的知识,希望对你有一定的参考价值。
参考技术A 官网介绍:A type-safe HTTP client for android and Java。Retrofit是一个类型安全的Android和Java网络Http请求框架。1、接口定义
2、创建Retrofit实例
3、调用接口
1、每个方法都必须有一个HTTP注释,提供请求方法和相对URL路径。内置的请求注解有5种方式:@GET、@POST、@PUT、@DELETE、@HADE
你也可以把请求参数放置在注解里
2、URL的相关操作
你可以使用@Path注解替换URL相对路径
如果你需要添加请求参数,你可以使用@Query
如果你需要一次性传递多个参数,你可以使用@QueryMap注解
3、如果是POST请求,可以指定Http请求的请求体,使用@Body注解
4、表单
@FormUrlEncoded 表示请求体是一个表单数据,表示发送form-encoded的数据。每个键值对需要使用@Filed来标注
5、文件上传
@Multipart表示文件上传,表示发送form-encoded的数据。每个键值对需要使用@Part来标注
使用案例
6、你可以使用@Headers构造请求头
7、你可以使用@Header构造不固定的请求头
1、数据解析器
Retrofit默认返回的是ResponseBody数据,如果不做特殊处理则需要自己处理转换。如果返回数据为JSON格式,通过添加Gson解析器可直接把JSON格式数据转换为实体类。
使用方式
2、网络请求设配器
使用时如使用的是 Android 默认的 CallAdapter,则不需要添加网络请求适配器的依赖,否则则需要按照需求进行添加 Retrofit 提供的 CallAdapter
使用方式
Retrofit原理解析: https://blog.csdn.net/guiman/article/details/51480497
Github: https://github.com/square/retrofit
面试系列——Retrofit 框架分析使用总结
Retrofit 框架分析
介绍
利用各种精巧的设计模式 ,以一种优雅的方式构造网络请求,内部还是利用OkHttp发送网络请求,而不是重写了一个套网络框架。
请求过程
定义获取Retrofit 实例 ,创建网络接口实例,发送网络请求,获取返回结果。
各种设计模式
构造者模式
Retrofit 实例创建利用Builder模式,简化构建方法。
外观模式
对外只提供Retrofit 实例 避免对系统的直接访问。
代理模式
网络接口到实现类的利用到动态代理,简化调用。
适配器模式
CallAdapter adapt 的实现 提供不同的Adapter实现来转化Call 请求。
工厂模式
CallAdapter.Fatory 对外屏蔽获取CallAdapter实现细节
策略模式
不同平台Platform 返回不同的callbackExecutor。
如何改变BaseUrl
1. 方案一 多Retrofit 实例
适用于baseUrl 不是很多,注意 可以通过 Retrofit 构造器Builder client(OkHttpClient ) 共享OkHttp 实例,否则会创建多个OkHttpClient ,不推荐使用。
2. 方案二 拦截器
拦截器 中重新构造请求。
3. 方案三 利用Path 参数覆写路径
静态方案,接口太多时,每个接口都要覆写path 不够优雅。
以上是关于Retrofit网络框架介绍的主要内容,如果未能解决你的问题,请参考以下文章