NSURLConnection/CFURLConnection HTTP laden fehlgeschlagen (kCFStreamErrorDomainSSL, -9813) iOS
Derzeit bin ich der Verzehr eines soap-web-service-using-block in ios my source-code ist wie folgt
NSString *xml = requestXMLToSent;
NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[xml length]];
NSURL *serviceURL = [NSURL URLWithString: url];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:serviceURL];
[urlRequest addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[urlRequest addValue: serviceURL forHTTPHeaderField:@"SOAPAction"];
[urlRequest addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[urlRequest setHTTPBody: [xml dataUsingEncoding:NSUTF8StringEncoding]];
[urlRequest setHTTPMethod:@"POST"];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
if (connectionError == NULL) {
NSHTTPURLResponse * httpResponse = (NSHTTPURLResponse *) response;
NSInteger statuscode = httpResponse.statusCode;
if (statuscode == 200) {
NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"response String : %@",responseString);
}else{
NSLog(@"%@",response);
}
}else{
NSLog(@"There is an error in URL connection and the Error is : %@",connectionError);
}
Ich erhalte die folgende Fehlermeldung @ console
NSURLConnection/CFURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
Es ist ein Fehler im URL-Verbindung und der Fehler : Error Domain=NSURLErrorDomain Code=-1202 "Das Zertifikat für diesen server ist ungültig. Sie könnte die Verbindung zu einem server, der er vorgibt zu sein "www.xxxxxxxx.net" das könnte Ihre vertraulichen Daten gefährdet." UserInfo=0x10948bbb0 {NSUnderlyingError=0x109470d10 "Das Zertifikat für diesen server ist ungültig. Sie könnte die Verbindung zu einem server, der er vorgibt zu sein "www.xxxxxx.net" das könnte Ihre vertraulichen Daten gefährdet.", NSErrorFailingURLStringKey=https: //www.----------------------------------, NSErrorFailingURLKey=https: //------------------------- NSLocalizedRecoverySuggestion=möchten Sie die Verbindung zum server überhaupt???, NSURLErrorFailingURLPeerTrustErrorkey=, NSLocalizedDescription=Das Zertifikat für diesen server ist ungültig. Sie könnte die Verbindung zu einem server, der er vorgibt zu sein "www.xxxxxx.net" das könnte Ihre vertraulichen Daten in Gefahr.}
- stackoverflow.com/questions/19941939/...
- Wie kann ich es lösen, wenn ich mich mit block [NSURLConnection sendAsynchronousRequest:<#(NSURLRequest *)#> queue:<#(NSOperationQueue *)#> completionHandler: "< " #^(NSURLResponse *Antwort, NSData *data, NSError *connectionError)handler#>]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Server wirft SSL Zertifikat Fehler.
Zum Wohle der Prüfung, Sie können fügen Sie den folgenden code, um die appDelegate:
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host {
return YES;
}
Dadurch umgehen Sie das SSL-Fehler
Hinweis: funktioniert für NSURLConnection & UIWebView, aber nicht für die WKWebView
Bearbeitet:
Für iOS 9, oben genannten Verfahren nicht funktioniert. Fügen Sie den folgenden Codeausschnitt in info.plist:
Ich nehme an, Sie verwenden das https-Schema in Ihrem serviceURL und Ihre test-server hat Probleme mit SSL-Zertifikat. Wenn dem so ist und Sie ihm Vertrauen, implementieren nächsten Methoden in Ihrem
NSURLConnection
Delegierten:Ein Delegierter, initialisieren Sie Ihre
NSURLConnection
zum Beispiel mitinitWithRequest:delegate:startImmediately:
Methode.In iOS 9.0 fügen Sie die folgende info.plist
Überprüfen Sie Ihre Delegierten sind tatsächlich aufgerufen wird.
Diese Dokumentation erklärt, dass Sie Ihre Delegierten nicht genannt, die in bestimmten Umständen.
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html