Iphone 从NSUrlConnection didReceiveAuthenticationChallenge提供有意义的错误

Iphone 从NSUrlConnection didReceiveAuthenticationChallenge提供有意义的错误,iphone,ios,cocoa-touch,cocoa,Iphone,Ios,Cocoa Touch,Cocoa,我正在使用的OWASP示例。示例使用,最近获得了一个新证书。这意味着连接:didReceiveAuthenticationChallenge:失败。这是意料之中的好事:) 但是,故障显示为“NSURErrorDomain”,代码为-1012。这不是很有帮助,用户将无法使用它做任何有意义的事情: 最好提供一条类似于“警告:标识网站的公钥已更改…”的文本消息 另一个小问题:在连接:didFailWithError:中,我无法判断-1012是由于固定失败还是其他网络错误造成的。因此,我只想为证书失败

我正在使用的OWASP示例。示例使用,最近获得了一个新证书。这意味着
连接:didReceiveAuthenticationChallenge:
失败。这是意料之中的好事:)

但是,故障显示为“NSURErrorDomain”,代码为-1012。这不是很有帮助,用户将无法使用它做任何有意义的事情:

最好提供一条类似于“警告:标识网站的公钥已更改…”的文本消息

另一个小问题:在
连接:didFailWithError:
中,我无法判断-1012是由于固定失败还是其他网络错误造成的。因此,我只想为证书失败提供消息,而不是其他-1012错误

如何为调用
[[challenge sender]cancelAuthenticationChallenge:challenge]
提供“丰富的错误信息”(当
连接:didReceiveAuthenticationChallenge:
失败时调用)。不要提及如何做到这一点。

尝试使用

NSString * alertMessage = [challenge.error localizedFailureReason];
获取人类可读的错误信息


有关和,请参阅文档

非常好的问题,前一段时间我遇到了完全相同的问题,但实际上无法检索到比-1012更多的信息。我接受了一条通用消息,告诉用户证书不匹配。嗨,拉维科。我正在考虑尝试抛出一个包含丰富错误信息的异常。据我所知,Objective C异常与其他语言异常不同。在这种情况下,您是否尝试过Objective C异常?据我所知,这里的问题是如何获取有关错误的附加信息,而不是如何在事后处理它。因此,您只得到了诅咒的-1012,而不知道其背后的原因是什么,基于此,您无法真正判断它是否是由于证书失败或其他问题,或者至少我无法检索该信息。我不太明白在那一点上抛出一个异常会如何帮助解决最初的问题?Jeff,你有没有找到一种方法来区分
CancelAuthenticationTechAllenge
错误和
连接中的其他类型的-1012 nsurlerErrorDomain错误:didfailwitherError
?我在这里不知所措。内特-不,我还没有试过(忙于其他事情)。让我把它列入待办事项清单。