簡體   English   中英

對光盤進行網絡緩存請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM