Я пытаюсь отправить данные в формате JSON на сервер с самозаверяющим сертификатом из моего приложения iOS через Objective C. К сожалению, я получаю эту ошибку:
Ошибка HTTP-загрузки NSURLSession/NSURLConnection (kCFStreamErrorDomainSSL, -9807)
В этой теме: Ошибка HTTP-загрузки NSURLConnection/CFURLConnection (kCFStreamErrorDomainSSL, -9813) iOS Я обнаружил, что должен добавить этот код в свой файл info.plist, но он у меня не работает. Кстати, когда я удаляю его, я получаю ту же ошибку с номером 9802.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
Я также пытался реализовать это:
- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler{
if([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){
if([challenge.protectionSpace.host isEqualToString:@"mydomain.com"]){
NSURLCredential *credential = [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust];
completionHandler(NSURLSessionAuthChallengeUseCredential,credential);
}
}
}
но я не знаю, как вызвать этот метод (где взять значения параметров этой функции) - сейчас я использую
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSString *requestReply = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"requestReply: %@", requestReply);
}] resume];
чтобы начать сеанс.
Я все еще новичок, поэтому, пожалуйста, извините меня, если я задам какой-то глупый вопрос или если что-то неясно. Спасибо за помощь!