尝试使用 NSURLSession 加载网页

Posted

技术标签:

【中文标题】尝试使用 NSURLSession 加载网页【英文标题】:Trying to load web pages using NSURLSession 【发布时间】:2016-02-16 12:56:39 【问题描述】:

当我尝试将网页与 cookie 值一起加载时,我的服务器端代码没有获得正确的 cookie 值。所以我试图通过NSURLSession 加载它。但是没有调用委托方法。

我使用NSURLSession 加载网页。下面是我的代码

let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: self, delegateQueue: NSOperationQueue.mainQueue()) 
let task = session.dataTaskWithRequest(URLRequest)
task.resume()


func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64)
    print("Resumed : \(fileOffset)")


func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64)

    print("Download : \(totalBytesWritten) Expected : \(totalBytesExpectedToWrite)")


func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL)
    ProgressHUD.dismiss()
    webPage.loadData(NSData(contentsOfURL: location)!, MIMEType: (downloadTask.response?.MIMEType)!, textEncodingName: (downloadTask.response?.textEncodingName)!, baseURL: (downloadTask.response?.URL)!)

我已经添加了NSURLSessionDelegate, NSURLSessionDownloadDelegate, NSURLSessionTaskDelegate, NSURLSessionDataDelegate

但是委托方法没有被调用。

还有其他加载网页的方法吗?

请帮忙

【问题讨论】:

您是否将视图控制器设置为委托? 【参考方案1】:

您实现的委托方法用于下载任务,但您使用的是数据任务。您需要实现数据任务委托方法。

【讨论】:

以上是关于尝试使用 NSURLSession 加载网页的主要内容,如果未能解决你的问题,请参考以下文章

NSURLSession下载文件-代理

nsurlsession 用于循环中的多个请求

尝试使用 Alamofire 下载图像时,NSURLSession/NSURLConnection HTTP 加载失败

NSURLSession "HTTP 加载失败 kCFStreamErrorDomainSSL, -9813 ; 自签名证书

NSURLSession/NSURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9801)

POST 值在 ios 9 中出现错误(NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)