Я некоторое время пытаюсь доверять сертификату, используя NSURLSession
, поскольку вариант NSURLConnection
устарел от macOS 10.11. Я пытаюсь реализовать NSURLSession
в приложении на основе WebKit, и после того, как сертификат доверен, ничего не происходит, и если я перезагружаю веб-страницу, на консоли появляется такая же ошибка, говоря, что сертификату не доверяют.Доверяя недействительный сертификат с NSURLSession
Мой код выглядит следующим образом:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:[defaults objectForKey:@"lastSession"]]];
NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *defaultSession = [NSURLSession sessionWithConfiguration:defaultConfigObject delegate:self delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionDataTask *dataTask = [defaultSession dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSLog(@"Success");
}];
[dataTask resume];
Вот что у меня есть для метода didReceiveChallenge
:
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler {
NSLog(@"Received auth challenge");
if([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) {
NSURL *baseURL = [NSURL URLWithString:[defaults objectForKey:@"lastSession"]];
if([challenge.protectionSpace.host isEqualToString:baseURL.host]) {
NSLog(@"Trusting connection to host %@", challenge.protectionSpace.host);
NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
[challenge.sender useCredential:credential forAuthenticationChallenge:challenge];
completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
NSLog(@"Trusted webpage successfully");
}
}
}
Есть ли что-то я здесь отсутствует? Некоторая помощь определенно будет оценена ...