早上请求接口出现下列错误:
xml parser error:Error Domain=NSURLErrorDomain Code=-1202 “此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。” UserInfo=0x190c7ce0 {NSLocalizedDescription=此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。, NSLocalizedRecoverySuggestion=您仍要连接此服务器吗?, _kCFStreamErrorCodeKey=-9813, NSErrorFailingURLStringKey=”……….”_kCFStreamErrorDomainKey=3, NSURLErrorFailingURLPeerTrustErrorKey=, NSUnderlyingError=0x190bdcc0 “此服务器的证书无效。您可能正在连接到一个伪装成“192.168.2.61”的服务器,这会威胁到您的机密信息的安全。”, NSErrorFailingURLKey=”………..”}
对于自签名证书,NSURLConnection对象无法验证服务端证书的真伪;我的解决方法:
意思就是添加
-(void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
NSLog(@"This will execute successfully!");
if ([[challenge protectionSpace] authenticationMethod] == NSURLAuthenticationMethodServerTrust) {
[[challenge sender] useCredential:[NSURLCredential credentialForTrust:[[challenge protectionSpace] serverTrust]] forAuthenticationChallenge:challenge];
}
}
关于处理各种类型的更多信息
的认证挑战。
connection:willSendRequestForAuthenticationChallenge:
is the preferred (Mac OS X 10.7 and iOS 5.0 or
later) mechanism for responding to authentication
challenges. See
<Foundation/NSURLAuthenticationChallenge.h> for
more information on dealing with the various types
of authenticationchallenges.
connection:canAuthenticateAgainstProtectionSpace:
connection:didReciveAuthenticationChallenge:
connection:didCancelAuthenticationChallenge: are
deprected and new code should adopt
connection:willSendRequestForAuthenticationChallenge.
The older delegates will still be called for
compatability, but incur more latency in dealing
with the authentication challenge.