我需要在加载网站之前检查网站是否可以访问。我是iOS开发的新手,但这是我为发现响应而实施的方法。
var url = NSURL(string: "http://www.apple.com")
var task = NSURLSession.sharedSession().dataTaskWithURL(url!) {
data, response, error in
println(data)
var httpResponse = response as? NSHTTPURLResponse
println(httpResponse)
}
task.resume()
有效!但问题是响应来自缓存......结果就是: 如果我正在检查文件是否存在,那时我正在检查它是否存在 - >对于应用程序,它将始终存在,因为它存储在缓存中......所以如果我删除文件然后我发出请求...它总是会给我200响应而不是404.
事实上,如果我在发出请求之前插入这行代码(它会删除缓存!),那么它的工作原理就像它应该工作一样,如果网站或文件存在,它总是检查是否真实!
NSURLCache.sharedURLCache().removeAllCachedResponses()
那么......我怎样才能在Swift中解决这个问题?...非常感谢
答案 0 :(得分:1)
您可以使用新的网址会话实例设置无缓存策略。
创建一个属性并为其设置一个新的NSURLSession实例。
var urlSession : NSURLSession!
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.requestCachePolicy = NSURLRequestCachePolicy.ReloadIgnoringLocalCacheData;
self.urlSession = NSURLSession(configuration: configuration)
使用此URLSession属性获取数据。
var url = NSURL(string: "http://www.apple.com")
var task = self.urlSession.dataTaskWithURL(url!) {
data, response, error in
// Your code
}
task.resume()