ios - Alamofire GET If-None-Match 由于某种原因不起作用

标签 ios alamofire

如果我使用 HEAD 和 header "If-None-Match":ETag 并且 ETag 在服务器上没有更改,我会收到 304 响应(这很好)。如果我使用相同的 header ,但 GET,我会收到 200 响应。这是两个代码,也许有人会发现我的错误:

let headers = ["If-None-Match":ETag]
Alamofire.request(.HEAD, useURL, headers: headers)
    .response { response in
        print(response!.statusCode) 
}

Alamofire.request(.GET, useURL, headers: headers)
    .response { response in
        print(response?.statusCode)
}

编辑:有趣的事情刚刚发生 - 我今天第一次运行应用程序时,都给了我 304,第二次 GET 给了我 200,HEAD 304。

最佳答案

试试这个:

Xcode 8.1、Swift 3、Alamofire 4.0

var urlRequest = URLRequest(url: useURL)
urlRequest.addValue(ETag, forHTTPHeaderField: "If-None-Match")
urlRequest.cachePolicy = .reloadIgnoringCacheData

Alamofire.request(urlRequest).response { result in // method defaults to .get
  print(result.response?.statusCode) //Optional(304)
}

关于ios - Alamofire GET If-None-Match 由于某种原因不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476484/

相关文章:

iphone - 如何与 Settings.bundle 中的 NSUserDefaults 同步?

ios - stringByAppending字符串问题

ios - 比较 Any 类型的两个属性

iphone - 如何将图像和数据传递到另一个 View ?

swift - 在 Swift 中加载指示器

ios - 如何从 Alamofire 返回值

ios - 如何在 Facebook 上发布签到信息?

json - 使用 SwiftyJSON 处理 Alamofire 异步请求

swift - Alamofire 没有将文件保存到磁盘

iOS - 解锁后第一个网络请求失败