我试图在我的应用中创建一些缓存。这是流程: 用户进入应用程序,应用程序检查天气是自上次刷新以来的任何更改,如果是,则服务器返回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()}
我试图想办法解决它超过一个星期! 不应该这么复杂 希望有帮助的人