Swift 2 - Xcode 7.0 Impossible d'accéder au site HTTPS avec un certificat SSL non sécurisé
Des Experts, je suis un Débutant dans IOS 9 /XCODE 7 /Swift 2 Kit de Développement
Je suis en train de créer une application ios qui il suffit de route pour l'Application Web dans le protocole HTTPS. Ci-dessous mon code jusqu'à présent dans ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet var myWebView: UIWebView!
/**
* Function to Display the Web Application initial URL
*/
func loadAppURL(){
let siteAddress = "https://domain:8443/path/to/page"
let url = NSURL (string: siteAddress)
let urlRequest = NSURLRequest(URL: url!)
myWebView.loadRequest(urlRequest)
}
override func viewDidLoad() {
super.viewDidLoad()
loadAppURL()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Dispose of any resources that can be recreated.
}
}
Lors de la Construction de mon Application, elle affiche le Message d'Erreur ci-dessous
2015-10-01 01:05:13.879 Page Web De Testeur De[2947:31838]
NSURLSession/NSURLConnection HTTP échec de chargement de la
(kCFStreamErrorDomainSSL, -9807)
et si j'essaie de construire mon app au lieu de "https://domain:8443/path/to/page" avec "http://www.apple.com" sa fonctionne très bien.
Je peux accéder à mon application web dans Safari et il vous demande d'accepter les risques de sécurité. et je l'accepte et je peux accéder à ma Demande.
Me guider pour résoudre mes problèmes, Merci d'avance.
source d'informationauteur Navas Basheer
Vous devez vous connecter pour publier un commentaire.
Enfin, je fixe le
Xcode va rejeter non-confiance les certificats auto-signés à partir de serveurs par défaut.
nous pouvons remplacer cette Aide
NSURLConnection
et peut communiquer avec un auto-signé serveur, car nous avons la capacité de contrôle de l'authentification par l'intermédiaire du délégué supplémentaire des méthodes qui ne sont pas disponibles pour une UIWebView. Donc, en utilisantconnection:didReceiveAuthenticationChallenge
on peut s'authentifier sur le serveur auto-signé.Références
NSURLAuthenticationChallenge Docs , @Lilo Lu Question
J'ai Résolu Mon Problème en étapes ci-dessous
Étape 1 : Défini un
NSURLConnection
dansviewDidLoad()
méthode de mon viewController.swift comme suitÉtape 2 : utilisé NSURLConnection délégué méthodes
et ça a fonctionné !!
Vous pouvez ajouter les lignes suivantes à votre fichier plist
Dans Swift 3.
L'étape 1. Ajouter
NSURLConnectionDelegate
à votre viewcontroller, écraser les méthodes.L'étape 2. Remplacer viewDidLoad
Étape 3 Remplacer
canAuthenticateAgainstProtectionSpace
etdidReceive challenge
Grâce Navas Basheer pour le solution originale! M'a sauvé une tonne de temps
1 - Créer une catégorie "NSURLRequestCategory" -> après l'importation de cette catégorie pour votre pont de fichier créé par xcode (n'oubliez pas de laisser xCode en créer un si vous ne l'avez pas) et de mettre ce code :
Créer votre charge demande UIWebView normalement :
Enjoyyy 😀
modifier les Infos.plist, Ajouter:
c'est un travail pour moi, XCode 7.3