Swift 2 - Xcode 7.0 не может получить доступ к сайту HTTPS с ненадежным сертификатом SSL
Автор вопроса: Navas BasheerОтветов: 5
Эксперты, я новичок в IOS 9/XCODE 7/Swift 2 Development Kit
Я пытаюсь создать приложение ios, которое просто направляется в веб-приложение по протоколу HTTPS. Ниже мой код до сих пор в 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.
}
}
При создании моего приложения отображается приведенное ниже сообщение об ошибке
и если я попытаюсь создать свое приложение вместо "https://domain:8443/path/to/page" с " http://www.apple.com" работает нормально.
Я могу получить доступ к своему веб-приложению в Safari, и оно запрашивает принятие рисков безопасности. и я принимаю это, и я могу получить доступ к своему приложению.
Направьте меня, чтобы исправить мои проблемы, спасибо заранее.
Это обман stackoverflow.com/questions/20365774/ stackoverflow.com/questions/8858674/ jrc 01.10.2015
@jrc Упомянутый вами вопрос не относится к ios 9, и решение также не в быстром, любая другая подсказка? Navas Basheer 02.10.2015
Xcode по умолчанию отклоняет ненадежные самозаверяющие сертификаты с серверов.
мы можем переопределить это с помощью NSURLConnection и можем взаимодействовать с самозаверяющим сервером, поскольку у нас есть возможность управлять аутентификацией с помощью дополнительных методов делегата, которые недоступны для UIWebView. Таким образом, используя connection:didReceiveAuthenticationChallenge, мы можем аутентифицироваться на самоподписанном сервере.
Спасибо Навасу Баширу за оригинальное решение! Сэкономил мне кучу времени
Ответ 4 · Badre
1- Создайте категорию "NSURLRequestCategory" -> после импорта этой категории в ваш файл моста, созданный xcode (не забудьте разрешить xCode создать его, если вы этого не сделали), и поместите этот код: