2016-11-23 2 views
0

L'erreur 9802 est une "alerte fatale" selon le docs d'Apple. J'ai regardé Google et SO et rien trouvé de référence 9802 qui résout ce problème. Je peux changer mon code pour aller sur "apple.com" et j'obtiens la page, mais en utilisant ma propre URL, j'ai l'erreur ci-dessus. J'ai essayé tout ce que je peux penser, et rien ne fonctionne. Il est temps de demander de l'aide! : DLa charge HTTP a échoué et j'ai essayé toutes les suggestions SO, mais rien ne fonctionne

Le résultat de l'utilisation

/usr/bin/nscurl --ats-diagnostics https://pragerphoneapps.com

est tous les tests échouent (les résultats sont téléchargés here)

Ceci est une image de fichier .plist de mon application (seule partie pertinente)

enter image description here

et ceci est une image de l'info cible:

enter image description here

Et voici mon code:

- (IBAction)showHTMLHelp:(UIButton *)sender { 

// make the popover 
UIViewController* popoverContent = [UIViewController new]; 
UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 450, 500)]; 
popoverView.backgroundColor = [UIColor colorWithWhite:(CGFloat)1.0 alpha:(CGFloat)1.0]; // frame color? 
popoverContent.view = popoverView; 

//resize the popover view shown in the current view to the view's size 
popoverContent.preferredContentSize = CGSizeMake(450, 500); 

NSString *urlAddress = @"https://pragerphoneapps.com";  // @"https://www.pragerphoneapps.com/bookstore-inventory-manager/upload-help/"; 
NSURL *url = [NSURL URLWithString:urlAddress]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

// add the UIWebView for RichText 
UIWebView *webView = [[UIWebView alloc] initWithFrame: popoverView.frame]; 
webView.backgroundColor = [UIColor whiteColor]; // change background color here 

// add the webView to the popover 
[webView loadRequest:requestObj]; 
[popoverView addSubview:webView]; 

// if previous popoverController is still visible... dismiss it 
if ([popoverController isPopoverVisible]) { 
    [popoverController dismissPopoverAnimated:YES]; 
} 

//create a popover controller 
popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent]; 

[popoverController presentPopoverFromRect:((UIButton *)oShowHelp).frame inView:self.view 
       permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

}

+0

Fonctionne-t-elle avec les domaines http? Si c'est le cas, le problème n'est probablement pas votre code. Vérifie ça; http://stackoverflow.com/questions/38719075/ios-kcfstreamerrordomainssl-9813 –

+0

non ... ne fonctionne pas avec http ou https; donne cette erreur: App Transport Security a bloqué un chargement de ressource HTTP (http: //) cleartext car il n'est pas sécurisé. Les exceptions temporaires peuvent être configurées via le fichier Info.plist de votre application. – SpokaneDude

+0

votre site cible est compromis ou les certificats sont mauvais. il ne s'ouvrira même pas en chrome. –

Répondre

1

Je recommande sérieusement vous de fixer votre certificat SSL. ATS exige que vous ayez un certificat SSL valide, TLS version 1.2 ou supérieure et un support pour le secret de transfert. Ce sera une exigence au début de 2017 alors mieux se préparer.

Quoi qu'il en soit, essayez les étapes suivantes pour que cela fonctionne.

Mettre cela sur le dessus de votre fichier:

@interface NSURLRequest (InvalidSSLCertificate) 
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; 
+ (void)setAllowsAnyHTTPSCertificate:(BOOL)allow forHost:(NSString*)host; 
@end 

Désactiver App Transport en sécurité Info.plist. enter image description here

Autoriser les certificats SSL invalides avant la demande de chargement:

[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]]; 

Exemple de code qui charge avec succès votre site:

NSString *urlAddress = @"https://pragerphoneapps.com";  // @"https://www.pragerphoneapps.com/bookstore-inventory-manager/upload-help/"; 
NSURL *url = [NSURL URLWithString:urlAddress]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[url host]]; 
UIWebView *webView = [[UIWebView alloc] initWithFrame: self.view.frame]; 
webView.backgroundColor = [UIColor whiteColor]; 
[self.view addSubview:webView]; 
[webView loadRequest:requestObj]; 
+0

Désolé, ça n'a pas marché ... a obtenu ceci: NSURLSession/NSURLConnection Le chargement HTTP a échoué (kCFStreamErrorDomainSSL, -9802) – SpokaneDude

+0

Obtenir un certificat SSL a résolu le problème; merci pour l'indice! Dakota du Sud – SpokaneDude

0

je me demande pourquoi il ne peut pas travailler pour le réglage « NSAllowArbitraryLoads OUI "S'il y a des caches, essayez de redémarrer votre Mac ou Xcode. Et vos paramètres "Domaines d'exception" ont un mauvais format.

enter image description here