NSUrlSessionDelagate质询代理方法不叫
问题描述:
我正在尝试向我的服务器上的API发出HTTPS请求。我有自签名证书。我的理解是,当http传输会遇到SSL信任问题时,下面的委托方法会被调用。NSUrlSessionDelagate质询代理方法不叫
func URLSession(_ session: NSURLSession,
didReceiveChallenge challenge: NSURLAuthenticationChallenge,
completionHandler completionHandler: (NSURLSessionAuthChallengeDisposition,
NSURLCredential?) -> Void)
如果上述方法不存在于委托中,那么将调用任务级挑战函数。
由于某些原因,任何挑战功能都没有被调用。我可以在输出中看到大量CFNetwork SSLHandshake失败(-9801)错误。
我完全知道如何禁用ATS。但我目前的目标不是禁用自签名证书。我有兴趣在挑战功能中处理它。
是否有什么特殊的事情需要完成,以便在ssl信任问题发生时引发挑战功能?是的,适当的委托被分配给NSUrlSession对象。