小编kup*_*lot的帖子

使用NSURLSession自定义NSURLProtocol

我正在尝试实现本教程,该教程使用NSURLConnection实现自定义NSURLProtocol.

https://www.raywenderlich.com/76735/using-nsurlprotocol-swift

它按预期工作,但现在在iOS9中不推荐使用NSURLConnection,我试图将其转换为NSURLSession.

不幸的是,它没有用.

我正在uiwebview中加载一个网站,如果我使用NSURLConnection加载并且一切都按预期工作,则会捕获来自webview的所有http请求,但在使用NSURLSession时则不会.

任何帮助表示赞赏.

这是我的代码

    import UIKit

    class MyProtocol: NSURLProtocol, NSURLSessionDataDelegate, NSURLSessionTaskDelegate, NSURLSessionDelegate {

    //var connection: NSURLConnection!
    var mutableData: NSMutableData!
    var response: NSURLResponse!

    var dataSession: NSURLSessionDataTask!

    override class func canInitWithRequest(request: NSURLRequest) -> Bool {

        if NSURLProtocol.propertyForKey("MyURLProtocolHandledKey", inRequest: request) != nil {
            return false
        }

        return true
    }

    override class func canonicalRequestForRequest(request: NSURLRequest) -> NSURLRequest {
        return request
    }

    override class func requestIsCacheEquivalent(aRequest: NSURLRequest,
        toRequest bRequest: NSURLRequest) -> Bool {
            return super.requestIsCacheEquivalent(aRequest, toRequest:bRequest)
    }

    override func startLoading() {
        let …
Run Code Online (Sandbox Code Playgroud)

nsurlprotocol ios nsurlsession swift nsurlsessiondatatask

10
推荐指数
3
解决办法
9226
查看次数