Retrofit使用 addInterceptor和addNetworkInterceptor的区别

来源:互联网 发布:c语言编译器安卓中文版 编辑:程序博客网 时间:2024/06/04 21:35

现在比较流行的框架当属retrofit+rxjava+mvp的使用了,但是在不熟悉的时候,添加拦截器时,不清楚以上两个方法的区别,有的小朋友在进行网络请求的时候,使用addInterceptor(),程序并不会崩溃,但发现onNext()方法中的log日志不打印,最后改成addNetworkInterceptor(),日志就正常打印了。针对大家的疑问,将两者的对比概括如下:

addInterceptor() 添加应用拦截器
● 不需要担心中间过程的响应,如重定向和重试.
● 总是只调用一次,即使HTTP响应是从缓存中获取.
● 观察应用程序的初衷. 不关心OkHttp注入的头信息如: If-None-Match.
● 允许短路而不调用 Chain.proceed(),即中止调用.
● 允许重试,使 Chain.proceed()调用多次.
addNetworkInterceptor() 添加网络拦截器
● 能够操作中间过程的响应,如重定向和重试.
● 当网络短路而返回缓存响应时不被调用.
● 只观察在网络上传输的数据.
● 携带请求来访问连接.

原创粉丝点击