Независимо от того, подключаетесь ли вы к HTTPS или HTTP-сайту, они должны быть полностью прозрачными как для NSURLConnection, так и для элементов управления UIWebView.Единственное, что вам может понадобиться - если сертификат сайтов сервера является самозаверяющим или не поддающимся проверке сертификатом, добавьте код, чтобы обойти проверку подлинности, которую получает браузер.(т. е. эквивалент сообщения о том, что сертификат подписан неизвестным органом и вы хотите его принять).
Просто используйте @ "https://www.myhttpsite.com/" URL-адрес, и он должен работать так же, как обычный HTTPurls.
Чтобы обойти проблему безопасности нераспознанного лица, подписавшего сертификат, для NSURLConnection добавьте следующее к вашим методам делегата:
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {
NSArray *trustedHosts = [NSArray arrayWithObjects:@"mytrustedhost",nil];
if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){
if ([trustedHosts containsObject:challenge.protectionSpace.host]) {
[challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];
}
}
[challenge.sender continueWithoutCredentialForAuthenticationChallenge:challenge];
}
В до iOS4.3 вам нужно что-то сделатьнемного по-другому, вы можете добавить категорию в класс URLRequest, который реализует обход безопасности для сертификатов от нераспознанного хоста.
Обратите внимание, что будьте осторожны с любым решением, которое игнорирует тот факт, что сертификат не подписан признанным органом какпри этом вы открываете потенциальную дыру в безопасности, но часто это необходимо, по крайней мере, для тестирования на тестовом сервере, на котором имеется самозаверяющий сертификат или сертификат с внутренней подписью.
Чтобы открыть соединение URL в веб-представлении:
NSURL *websiteUrl = [NSURL URLWithString:@"https://www.mysecuresite.com/"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteurl];
[myWebView loadRequest:urlRequest];