這篇文章中寫得很全面http://blog.csdn.net/oyangyujun/article/details/50039403
補充兩點:
1,chain.processed(request)方法就意味著被攔截的url執(zhí)行了一次,如果你調(diào)用了多次該方法,那么此url接口就會被執(zhí)行多次。
我就跳到坑里了,應(yīng)用所有接口都返回了兩次response……
2,如果添加多個interceptor的話,那么你需要保證每個interceptor都把chain.processed給return出去,從而能保證在下個interceptor中繼續(xù)執(zhí)行。

添加了三個interceptor

把chain.processed給return出去
那么如果在執(zhí)行chain.processed的時候出錯了怎么辦呢,比如timeout、無網(wǎng)絡(luò)等情況,那么就如下這么做:

把catch到的exception給throw出去
這樣就能保證下個interceptor繼續(xù)正確執(zhí)行了,否則下個interceptor就要報null point了~~
請關(guān)注我的微信公眾號~
