我正在使用NSURLSession dataTaskWithRequest:completionHandler:
向我的服务器发出一些请求。我使用的是自签名证书,因此当委托人URLSession:didReceiveChallenge:completionHandler:
被调用时,我可以进行内部检查以验证一切正常。
这一切都适用于我发送的第一个请求。在使用NSURLSessionAuthChallengeUseCredential
调用完成处理程序后,下一个请求永远不会调用URLSession:didReceiveChallenge:completionHandler:
。
由于我不想进入这篇文章的原因,我希望每次都能调用URLSession:didReceiveChallenge:completionHandler:
,以便我可以自己检查。我假设NSURLSession以某种方式缓存证书并将其保存在某种有效的证书中#34;列表所以每次都不做这个检查。我想清除这个缓存,这样我每次都可以自己检查。如果我重新启动应用程序,则会再次调用URLSession:didReceiveChallenge:completionHandler:
。
我尝试将凭据存储设置为零但没有成功:
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.URLCredentialStorage = nil;
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
[[session dataTaskWithRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
...
}] resume];
任何想法如何实现这一目标?
谢谢!
答案 0 :(得分:0)
对于在这里尝试过一切的人来说,后端可能会出现问题。因此,通过在nginx服务器中禁用ssl会话缓存来解决此问题。