之前描述了retrofit的实例
retrofit源码解析(一)实例化
以及retrofit的网络请求
retrofit源码解析(二)网络请求
那retrofit是如何通过注解获取到请求参数的呢?
我们回到ServiceMethod类build()方法中,在build()方法中,会根据method的注解,去解析请求参数
解析注解
在这里我们看到,根据不同的注解,会解析不同的内容,例如 get,post,put 等方法,以及header等头文件,这里说一下okhttp 的缓存策略,okhttp是使用的是http的缓存策略,通过header中的Cache-Control来判断是否要进行缓存,以及缓存时间,而parseMethodAnnotation()解析出来的结果,会放到ServiceMethod的参数中保存,在请求网络的时候,我们看到在OkHttpCall中,调用了ServiceMethod的toRequest()方法
serviceMethod toRequest
在这个方法中,将解析出来的参数放到了Request中,并通过OkHttpCall的createRawCall传递给了OKHTTP,请求网络
retrofit 封装 git
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8