我正在创建使用rest的iOS应用程序,该应用程序托管在HTTPS上。此域具有有效的CA认证证书用于、SSL、和TLS。但是当我从我的应用程序发出一个NSURL请求时,它第一次工作得很好,但是半小时后,当我提出NSURL请求时,它返回NSURL错误-1012。
我还尝试使用以下方法处理身份验证挑战和TLS链验证:- (BOOL)连接:(NSURLConnection *)connection *protectionSpace- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)挑战性
下面的链接中提到了我使用的过程:ref/doc/uid/TP40009507-SW3
当我调试canAuthenticateAgainstProtectionSpace并检查它显示的protectionspace值时,请求有NSURLAuthenticationMethodServerTrust问题。
我尝试了不同的方案来处理这个问题。1.在canAuthenticateAgainstProtectionSpace方法中,如果我找到NSURLAuthenticationMethodServerTrust验证,然后返回NO,则didReceiveAuthenticationChallenge方法从未调用,但didReceiveAuthenticationChallenge返回空字符串。2.在canAuthenticateAgainstProtectionSpace方法中,如果我找到了NSURLAuthenticationMethodServerTrust验证,然后返回YES,然后调用didReceiveAuthenticationChallenge方法,当我一个接一个地使用continueWithoutCredentialForAuthenticationChallenge,performDefaultHandlingForAuthenticationChallenge和cancelAuthenticationChallenge方法时,总是得到相同的结果空白字符串,而在cancelAuthenticationChallenge上,我得到NSURL错误-1012。
我们的API托管在http://uat-exchange.vrmco.com/上。
请帮助我什么是我错过或是任何东西,我们需要用来解决这个错误。
提前谢谢。
发布于 2015-09-15 07:09:42
我不认为这是一个TLS问题,如果它是第一次工作。IIRC,除非您提供自定义的TLS处理程序方法(在canAuthenticateAgainst中为服务器信任保护空间返回YES ).方法),1012错误通常意味着无法将用户身份验证到服务器,而不是反过来。( TLS故障还有其他错误代码--特别是1202)。
我的第一个猜测是,您的服务器需要某种基于cookie的身份验证,并在该cookie过期时返回HTTP 401错误代码。如果是这样的话,您可能应该将其视为需要重新执行登录过程的指示。
https://stackoverflow.com/questions/31262025
复制相似问题