首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Alamofire钉扎PublicKey

Alamofire钉扎PublicKey
EN

Stack Overflow用户
提问于 2019-08-28 18:57:17
回答 1查看 208关注 0票数 0

我已经为google.com和编写2方法附加了google.com文件。第一个方法可以调用URL,而不需要SSL固定:

代码语言:javascript
复制
@IBAction func Request_with_No_Pinning() {
   // let sessionManager = SessionManager()

    Alamofire.request("https://google.com").response { response in
        if response.response != nil{

            print(response.response?.debugDescription as Any)
        }
    }
}

它正在如预期的那样运作。第二种方法是使用google.com钉扎调用PublicKey:

代码语言:javascript
复制
    @IBAction func Request_with_Pinning() {
    var sessionManager = SessionManager()
    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        "google.com": .pinPublicKeys(
            publicKeys: ServerTrustPolicy.publicKeys(),
            validateCertificateChain: true,
            validateHost: true
        )
    ]

    sessionManager = SessionManager(

        serverTrustPolicyManager: ServerTrustPolicyManager(
            policies: serverTrustPolicies
        )
    )


    sessionManager.request("https://google.com").response { response in

        if response.response != nil{
            print(response.response?.debugDescription as Any)
        }

    }
}

这给我带来了错误:

2019年-08-28 UserInfo={NSErrorFailingURLStringKey=https://google.com/,sslpinning7184:114068任务.<1>加载失败,错误Domain=NSURLErrorDomain代码= -999“取消了”错误“NSErrorFailingURLKey=https://google.com/,_NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<1>”),_NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<1>,NSLocalizedDescription=cancelled} -999 2019-08-28 21:55:21.232343+0300 sslpinning7184:114069任务.<1>完成了错误代码:-999

EN

回答 1

Stack Overflow用户

发布于 2019-08-28 20:30:49

您的请求正被取消,因为您的SessionManager超出了作用域,被重新初始化,并自动取消请求。你需要保持你的SessionManager在附近。这通常是通过单例完成的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57698561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档