[英]How do I set a request timeout and cache policy in AFNetworking 2.0?
[英]afnetworking cache request to disc
我目前正在使用以下代碼從Web服務(通過https)加載數據。
我需要一種將這些數據緩存到光盤的方法。
理想情況下,流程將是這樣。
是否已加載數據?
這怎么可能?
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager POST:@"someurl" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//NSLog(@"Error: %@", error);
}];
要將數據寫入文件,您可以執行NSJSONSerialization
將響應對象轉換為NSData
,然后將數據保存到文件中:
NSString* filePath [NSTemporaryDirectory() stringByAppendingPathComponent:@"someFile.json"];
NSData* data = [NSJSONSerialization dataWithJSONObject:responseObject options:NSJSONWritingPrettyPrinted error:nil];
[data writeToFile:filePath options:0 error:nil];
然后,在發出請求之前,請檢查文件是否存在並讀取文件,而不是執行請求:
NSData* jsonData = [NSData dataWithContentsOfFile:filePath];
if(jsonData == nil){
// Perform network request
}else{
id responseObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.