retrofit源码解析(三)

568次阅读  |  发布于4年以前

之前描述了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