2013-01-09 79 views
1

所以我想要做的是提供一個.json文件的地方(我已經嘗試了我自己的個人服務器,也AppFog),然後使用AFJSONRequestOperation執行GET請求iOS平臺。我的代碼做這個請求如下:AFJSONRequestOperation/AFHTTPClient獲取舊數據

AFHTTPClient *aclient = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:kBaseURL]]; 
NSURLRequest *request = [aclient requestWithMethod:@"GET" 
              path:@"voucher.json" 
            parameters:nil]; 

AFJSONRequestOperation *op = [[AFJSONRequestOperation alloc] initWithRequest:request]; 
[op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"%@", (NSString *)responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

[op start]; 

這裏的問題是說,.json文件最初包含2個字符串的數組。上面的代碼可以很好地獲取這些對象。然後,如果我用另外3個字符串編輯.json文件,重新運行代碼將繼續只提取2箇舊字符串。

只有10-15分鐘後,我作出改變到以.json文件將刷新給我更新的數據。起初我以爲這是一個緩存問題,但是設置[client setCachingPolicy:]沒有任何區別。

這個問題是目前我是否託管我的靜態服務器上我以.json文件,或者在AppFog節點Express服務器上運行。 它只是不斷返回所請求資源的舊版本。

我真的很疑惑這個問題:所以任何幫助將不勝感激!

回答

0

確保url請求沒有緩存數據。我必須實現以下內容,以便每次進行提取時都會獲取新的json數據。

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5]; 
0

這可能是一個緩存問題 - 您可以更改請求上的緩存策略或在查詢字符串上追加某些內容,如當前時間。

要做到這一點,你可以使用類似:

[aclient requestWithMethod:@"GET" 
         path:[NSString stringWithFormat:@"voucher.json?%@", [NSDate date]] 
       parameters:nil]; 
相關問題