如果我使用 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/