即使明确返回304

时间:2016-05-13 21:26:26

标签: ios iphone swift alamofire http-status-code-304

我试图在我的应用中创建一些缓存。这是流程: 用户进入应用程序,应用程序检查天气是自上次刷新以来的任何更改,如果是,则服务器返回200并刷新页面。 否则,服务器返回304并且没有任何反应。 我在ios应用程序中使用了alamofire,我尝试了其中的任何配置,但没有任何帮助。 真正奇怪的问题是,即使服务器明确返回状态代码304,我的应用仍然会获得200。 这是代码:

if Reachability.isConnectedToNetwork() {
    let urlreq = NSMutableURLRequest(URL: NSURL(string: API.feedURL())!,cachePolicy: NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData
        , timeoutInterval: 5000)
    Alamofire.request(.GET, urlreq, parameters: ["category_name":category],encoding: ParameterEncoding.URL, headers: API.getHeaders())
                .validate(statusCode: 200..<500)
                .responseJSON { request, response, result in
                    switch result {
                    case .Success(let data):
                        let statusCode = response!.statusCode as Int!
                        if statusCode == 304 {
                            completionHandler(didModified: false, battlesArray: [])
                        } else if statusCode == 200 {
                            let json = JSON(data)
                            var battlesArray : [Battle] = []
                            for (_,subJson):(String, JSON) in json["battles"] {
                                battlesArray.append(Battle(json: subJson))
                            }
                            completionHandler(didModified: true, battlesArray: battlesArray)
                        }
                    case .Failure(_, let error):
                        print ("error with conneciton:\(error)")
                    }
                    SVProgressHUD.dismiss()}

我试图想办法解决它超过一个星期! 不应该这么复杂 希望有帮助的人

0 个答案:

没有答案