2011-02-01 43 views
5

任何其他人在获取旧iphone上的https请求时遇到问题。旧iphone上的HTTPS请求3g

从连接确实失败,错误消息如下。

误差theConnection:错误域= NSURLErrorDomain代码= -1202“此服务器的证书无效,您可能正在连接到一个伪装成一台服务器。‘www.ourwesbite.co.uk’这可能把你的机密信息置于危险之中。“

的“ourwebsite”有一个有效的证书,也没有任何新的iPhone/iPod touch或登记,只是最古老的iPhone会出现这个问题。

这会影响我的登录工作,通过在用户单击确定连接错误后抛出连接错误,提醒登录进程正常运行。但问题是它在登录后影响UI。

所以非常想知道是否有其他人有这样的问题与旧的iPhone。我的代码没有问题,因为它可以在模拟器& ipad/4gen ipod touch上正常工作。

谢谢

+0

什么iOS版iPhone 3G正在运行?你在执行异步NSURLConnection吗? – fsaint 2011-02-01 10:03:05

回答

2

好,所以即使证书是有效的,它会抛出错误。所以使用NSURLConnection的下面的委托方法解决了这个问题。

-(void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{ 

当对认证有挑战时,它被调用。以下代码允许它继续使用https连接。

[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; 

然后允许通过,如果它认为它是不可信

8

我们有这个错误和iPhone 3G在问题有一个不正确的日期和时间设置连接。这意味着所有的SSL交易都会失败。

我们认为这个iOS错误是一个苹果问题,不是我们的,所以黑客要忽略SSL证书不是解决方案!