美文网首页
Retrofit原理

Retrofit原理

作者: tommyRen | 来源:发表于2019-03-15 17:44 被阅读0次

我们使用OkHttp + Retrofit来开发网络模块那真是得心应手,但是项目紧张的时候总是完成任务就完事了心里却一直好奇这么多注解到底底层是怎么实现的。

如果有不熟悉注解的小伙伴,现在带大家彻底搞懂注解是什么,Retrofit的注解底层是怎么实现的。有俩个部分需要大家熟悉:

1,annotation是什么 有什么作用 怎么使用 请参考下边这篇文章 http://www.akathink.com/2016/08/11/%E5%BD%BB%E5%BA%95%E6%90%9E%E6%87%82Java%E6%B3%A8%E8%A7%A3Annotation/

2,retrofit源码分析

我们从这样的一行熟悉的代码出发 重点是create()方法

api = RetrofitDelegate.getInstance().getRetrofit(provideHostUrl()).create(apiClass());

点击进去查看源码

很明显使用的代理的模式,一般我们的接口是不能被实例化的,但是retrofit就可以使用这个接口的实例 这事怎么做到的呢?我们看个例子

关键部分我们要分析的是注解 我们看最后几行代码 第一行代码是关键我们要分析的 2,3是okhttp的call对象转换为rx的Observable对象或者是默认的call对象这个我们不在此次讨论范围。

1,ServiceMethod serviceMethod = (ServiceMethod) loadServiceMethod(method);

2,OkHttpCall okHttpCall =new OkHttpCall<>(serviceMethod, args);

3,return serviceMethod.adapt(okHttpCall);

我们进入ServiceMethod类看一下

一句话总结中心思想就是:通过反射获取到annotation的所有信息和value的值然后拼接url最后做网络请求。

相关文章

  • Android Retrofit 工作原理解析

    本文以 Retrofit 整合 RxJava 为例,介绍 Retrofit 的工作原理,使用 Retrofit 2...

  • Retrofit原理解析

    问题: 1、什么是Retrofit?2、为什么要用Retrofit?3、Retrofit原理? 问题1:什么是Re...

  • Retrofit是如何工作的?(源码分析)

    这里直接介绍Retrofit的原理,如果你还不是很熟悉retrofit的使用,可以看笔者对retrofit之前写过...

  • Retrofit+hashmap+热修复(面试题06)

    1.Retrofit作用和原理Retrofit并不做网络请求,只是生成一个能做网络请求的对象。Retrofit的作...

  • OkHttp源码解析

    序言 上一篇文章介绍了Retrofit的原理,今天,我们就来探究一下OkHttp的原理。Retrofit是对OkH...

  • 【Retrofit2进阶】---启示、思想

    前言 之前的文章 从源码角度看Retrofit2实现原理 已经介绍过Retrofit2源码和原理了,本文试图站在更...

  • Android面试题3

    1 OkHttp原理?2 Retrofit原理?为何用代理?代理的作用是什么?3 ButterKnife原理?用到...

  • Retrofit原理

    从上面Retrofit的使用来看,Retrofit就是充当了一个适配器(Adapter)的角色:将一个Java接口...

  • retrofit原理

    retrofit在creat方法中通过动态代理实现接口方法,在这过程中构建了一个serviceMethod,根据方...

  • Retrofit原理

    我们使用OkHttp + Retrofit来开发网络模块那真是得心应手,但是项目紧张的时候总是完成任务就完事了心里...

网友评论

      本文标题:Retrofit原理

      本文链接:https://www.haomeiwen.com/subject/exklmqtx.html