2016-03-31 78 views
1

我有一個用例,我需要在Apple TV上輪詢一個休息api以進行身份​​驗證。我得到陳舊的響應JSON響應90-120秒之後,我得到適當的JSON響應。 下面是我的代碼NSURLRequest with cachePolicy ReloadIgnoringCacheData返回陳舊數據

static func getFileNoCache(url:NSURL?, completionHandler:(NSData?, String?)->Void) { 
    if let fileUrl = url { 
     let request = NSURLRequest(URL: fileUrl, cachePolicy: .ReloadIgnoringCacheData, timeoutInterval: 5) 
     let dataTask = NSURLSession.sharedSession().dataTaskWithRequest(request, 
      completionHandler: { data, response, error in 
       if let err = error { 
        // failed ! 
        print("!! Error - Download Failed \n\t\(fileUrl) reason:\(err.localizedDescription)") 
        completionHandler (nil, err.localizedDescription) 
        return 
       } 

       if let statusCode = (response as? NSHTTPURLResponse)?.statusCode { 
        if statusCode == 200 { 
         completionHandler(data, nil) 
        } 
        else { 
         completionHandler (nil, "Message") 
        } 
       } 
       else { 
        completionHandler (nil, "Invalid response") 
        print("!! Error - Downloading EPG Config") 
       } 
     }) 
     dataTask.resume() 
    } 
} 

我米怎麼回事錯

+0

這可能是由於服務器端緩存或使用代理cdn(如cloudflare),您是否嘗試過使用類似郵遞員的方式單獨提出請求? – Scriptable

回答

0

可以是任何一些事情,從代理到服務器端緩存在共享會話的行爲的錯誤真的一無所知。

嘗試完全用自己的會話配置,設置其Urlcache文件財產禁用緩存來,然後根據該配置創建一個會話。

如果還是不行,那麼緩存是不是在你的機器,和你最好的選擇是將緩存無效添加到URL(例如& ignoredParameter = monotonically_increasing_number)。