之前用AFNetworking做過一個離線下載的功能转锈,但是下載過程如果遇到服務器宕機或者報錯妇斤,該下載包就一直不能重新下載了橙困。經(jīng)過排查,終于找出了原因所在:AFNetworking為了方便離線瀏覽乎串,會將Url的Response默認緩存起來,其方法是:
- (void)setCacheResponseBlock:(NSCachedURLResponse * (^)(NSURLConnection *connection, NSCachedURLResponse *cachedResponse))block {
self.cacheResponse = block;
}
所以速警,一旦Response被緩存后叹誉,下次不再重復發(fā)起連接,將直接將同樣地Response返回闷旧,也就是說:網(wǎng)絡正常的情況下长豁,服務器出錯,一旦服務器出錯的Response被緩存忙灼,就算服務器修復后匠襟,也有可能造成iOS客戶端持續(xù)報錯钝侠。這種情況將是致命的。
解決方案:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
用來清理所有URL緩存的Response