Dur*_*n.H 10 etag ios nsurlsession if-none-match swift
我的网络服务器中有一个文件,我每次访问它时都会将其下载到我的应用程序,因为它可能会更改文件内容但是如果它被更改我想下载那个时间只有这样才能保存带宽而且幸运的是那是什么此ETag和If-None-Match 标头字段用于.
注意:
当我在Chrome 中使用高级REST客户端应用程序尝试上述步骤时,它应该可以正常工作但是当我在iOS中尝试时,我总是得到响应代码200,但它应该给我304后续请求.
这是我使用的示例代码
var request1 = NSMutableURLRequest(URL:NSURL(string: "http://10.12.1.101/Etag/ringtone1.mp3")!)
let Etagvalue="\"36170-52c1cc36d9b40\""
var session1 = NSURLSession.sharedSession()
request1.HTTPMethod = "GET"
var err: NSError?
request1.addValue(Etagvalue, forHTTPHeaderField: "If-None-Match")
var task = session1.dataTaskWithRequest(request1, completionHandler: {data, response, error -> Void in
print("response: \(response)")
})
Run Code Online (Sandbox Code Playgroud)
这是回复
响应:可选({URL:http : //10.12.1.101/Etag/ringtone1.mp3 } {状态代码:200,headers {"Accept-Ranges"= bytes; Connection ="Keep-Alive";"Content-Length" = 221552;"Content-Type"="audio/mpeg"; Date ="Wed,2016年2月24日14:57:53 GMT"; Etag ="\"36170-52c1cc36d9b40 \"";"Keep-Alive"=" timeout = 5,max = 100";"Last-Modified"="Fri,2016年2月19日10:15:33 GMT"; Server ="Apache/2.4.16(Unix)PHP/5.5.29";}})
我在这做错了什么?
And*_* M. 11
我遇到了同样的问题.我发现这是因为cachePolicy.您需要将其设置如下:
request.cachePolicy = .ReloadIgnoringLocalAndRemoteCacheData
Run Code Online (Sandbox Code Playgroud)
你会没事的
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |