【发布时间】:2016-01-31 12:06:31
【问题描述】:
(即将弃用)NSURLConnectionDelegate 允许您像这样处理 TLS 信任挑战:
-(void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge(NSURLAuthenticationChallenge *)challenge
{
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
[challenge.sender performDefaultHandlingForAuthenticationChallenge:challenge];
}
假设相同的 x509 证书由同一台服务器提供,我的测试表明此方法的效果在应用程序执行期间被缓存。此方法不再命中。
有没有办法在处理发生后强制应用程序忘记此方法的效果,以便随后对同一 Web 服务的命中强制调用此方法?
【问题讨论】:
-
您有解决此问题的方法吗?我面临着同样的问题,即使在终止/终止应用程序并重新启动之后,连续调用相同的 Web 服务也不会调用该委托。
-
很遗憾没有。由于 NSURLConnection 已被弃用,因此我已将所有内容更新为 NSURLSession。 NSURLSession 不缓存答案,所以这对我来说不再是问题。迁移只有几个小问题。否则它是令人惊讶的无痛。
-
感谢您的回复。好的,我也试试把 NSURLConnection 改成 NSURLSession。