Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSURLSession 3xx重定向和完成处理程序_Ios_Swift_Macos_Nsurlsession_Foundation - Fatal编程技术网

Ios NSURLSession 3xx重定向和完成处理程序

Ios NSURLSession 3xx重定向和完成处理程序,ios,swift,macos,nsurlsession,foundation,Ios,Swift,Macos,Nsurlsession,Foundation,我使用dataTask+completionHandler方法从web服务器下载数据。到目前为止,我已经实施了以下措施: let task = session.dataTaskWithURL(url, completionHandler: { (pageData,response,error) in ... ... let code = urlHttpResponse.statusCode switch code { case 200: self.fetchedPage

我使用dataTask+completionHandler方法从web服务器下载数据。到目前为止,我已经实施了以下措施:

let task = session.dataTaskWithURL(url, completionHandler: {
        (pageData,response,error) in
...
...
let code = urlHttpResponse.statusCode
switch code {
case 200:
     self.fetchedPages.updateValue(pageData, forKey: pageNumber)
case 404:
    self.fetchedPages.updateValue(nil, forKey: pageNumber) //No data exists for that page
default:
    self.fetchedPages.updateValue(nil, forKey: pageNumber) //No gurantee data exists for that page
}
NSNotificationCenter.defaultCenter().postNotificationName("pageDataDownloaded", object: self, userInfo: ["numberForDownloadedPage":pageNumber])
我想知道的是,如果statusCode是3xx错误,会发生什么?pageData是否包含重定向位置的数据?换言之,我是否应该补充一点

case _ where code >= 300 && code < 400:
    self.fetchedPages.updateValue(pageData, forKey: pageNumber)
案例uu其中code>=300&&code<400:
self.fetchedPages.updateValue(pageData,forKey:pageNumber)

或者,处理程序是否会再次被调用,其中包含重定向位置的值和新的200状态码?或者正确处理重定向是我只能使用代理才能做到的吗?

如果您没有代理或者代理没有实现,HTTP重定向将自动跟随。在这种情况下,您将不会在处理程序中看到30x状态