我想,以確定是否從NSURLSessionDataTask
響應從緩存中來,或者從服務器如何知道NSURLSessionDataTask響應是否來自緩存?
我'端上來創建我NSURLSessionDataTask
從
request.cachePolicy = NSURLRequestUseProtocolCachePolicy;
我想,以確定是否從NSURLSessionDataTask
響應從緩存中來,或者從服務器如何知道NSURLSessionDataTask響應是否來自緩存?
我'端上來創建我NSURLSessionDataTask
從
request.cachePolicy = NSURLRequestUseProtocolCachePolicy;
兩種簡單的方式浮現在腦海中:
[[NSURLCache sharedURLCache] cachedResponseForRequest:request]
您做出請求之前,存儲緩存響應,然後做你完成接收數據後,再次和比較這兩個緩存響應,看看他們是相同的。NSURLRequestReturnCacheDataDontLoad
緩存策略發起初始請求,如果失敗,請使用更合理的策略發出第二個請求。第一種方法通常比較可取,因爲第二種方法將返回緩存中存在的數據,即使它是陳舊的。但是,在極少數情況下(例如離線模式),這可能就是您想要的,這就是我提到它的原因。
使用request.cachePolicy = NSURLRequestReloadIgnoringCacheData
代替。 NSURLRequestUseProtocolCachePolicy
是默認策略。基本上,這意味着緩存行爲在NSURLProtocol
實現或從NSURLSessionConfiguration
緩存策略中定義。
如果您的信息需求只是出於好奇,您可以查看您的網絡使用情況Xcode運行時網絡metics。將策略更改爲不同的設置並觀察其差異。
我如何比較兩個cachedResponse? –