這篇文章中寫得很全面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了~~
新聞熱點
疑難解答