在后台 session 中,对于使用https的app 服务器通信,以下方法的相当宽松的实现或根本不实现有什么区别? func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) { completionHandler(.useCredential, challenge.proposedCredential) }在这两种情况下,该应用程序都可以运行,但是我已经阅读了有关此方法的每次调用,从而增加了该应用程序的“恢复速率限制”(据认为是不好的)是的,当我意识到该应用程序无需任何方法即可运行后,我开始自问可能实施该应用程序的原因是什么?授权通过401和随后的登录完成。 最佳答案 我认为可以从Performing Manual Server Trust Authentication文档中找到一些有用的信息: 要执行手动服务器信任身份验证,请实施 URLSessionDelegate方法urlSession(_:didReceive:completionHandler :)。以下内容: 在大多数情况下,您应该将网址加载系统的默认设置 处理评估服务器信任度。 当您 没有委托人或不处理身份验证 挑战。并通过执行URLSessionDelegate方法urlSession(_:didReceive:completionHandler:)来解释为什么您可能需要进行手动服务器信任身份验证: 但是,执行自己的评估可能对方案很有用 类似于以下内容: 您想要接受否则将被拒绝的服务器凭据 通过系统。举例来说,您的应用程式与 使用自签名证书的开发服务器, 通常不匹配系统信任库中的任何内容。 您想拒绝本来可以接受的凭据 系统。例如,您想要将应用“固定”到一组特定的 由您控制的密钥或证书,而不是接受任何有效的 凭据。关于ios - 实现func urlSession(_ session:URLSession,didReceive挑战:URLAuthenticationChallenge之间有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59680970/
10-12 23:46