1、网络请求框架的缓存基本实现:
有缓存用缓存的数据,没缓存发起http请求取数据,得到最新的数据后存到缓存里。
2、OKhttp请求的源码实现:
①在execute中实现中调用gerResponseWithInterceptorChain,这个方法是初始化一个interceptor列表,然后调用RealInterceptorChain的proceed函数。
3、interceptors(拦截器的作用):
①interceptor的add顺序很重要
②只要Interceptor的intercept方法调用了chain.proceed(request),就会调用Interceptor列表里的下一个Interceptor;反之可以不调用chain.proceed代码里,走下一个Interceptor的流程。
③自定义的application interceptor和network interceptor时,都必须返回chain,proceed得到的结果;否则会打断okhttp内部的请求链。
④在写application interceptor时,在调用chain.proceed(request)之前包装request.
⑤写network interceptor时,在调用chain.proceed(request)之后得到的response包装response.
网友评论