2011-06-10 17 views
7

Rozpoczynam programowanie iPhone'a i mam duży problem, którego nie mogę rozwiązać.Załaduj adres URL HTTPS w UIWebView

Tak, mam UIWebview mogę załadować HTTP URL bez problemów:

NSString urlAdress; 
urlAdress = @"http://servername"; 
NSURL *url = [NSURL URLWithString:urlAdress]; 
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 
[webView loadRequest:requestObj]; 

swoją pracę, moja strona jest obciążenie w moim UIWebView, ale kiedy wymienić:

urlAdress = @"http://servername"; 

przez

urlAdress = @"https://servername"; 

Mam pusty ekran.

Czytam normalne, ale czy istnieje łatwy sposób na załadowanie adresu URL https w moim webview?
Przeczytałem o ASIHTTPRequest, ale nie dotarłem do realizacji.

Po prostu chcę załadować HTTPS URL.

+0

Co się dzieje, jeśli załadować 'https: // servername' w Safari? – deanWombourne

+0

W Safari mogę załadować zarówno "http: // servername" i "https: // nazwaserwera" – Borneto

+1

Czy jest to z samopodpisanym certyfikatem? – Jim

Odpowiedz

6

Spróbuj tego:

- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace { 
    return YES; 
} 


- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { 
    [challenge.sender useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge]; 
} 
+1

Czy po prostu dodaję to do kontrolera UIViewControler zawierającego UIWebView? Nie jestem do końca pewien, co z tym zrobić. – powerj1984

+1

Te dwie metody są częścią protokołu [NSURLConnectionDelegate] (https://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html), więc należy umieścić je w dowolnym pliku działa jako delegat dla Twojego NSURLConnection. –

+0

Użyłem również certyfikatu z własnym przydziałem i działało z powyższą implementacją. – m4n1c