[iOS] как использовать NSURLConnection с частным IP-адресом? - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть приложение iOS на A (iPhone), в той же сети, где находится A, есть компьютер B, а в Интернете также есть удаленный сервер C.Первоначально, через NSURLConnection, я могу вызвать GET https://domain_of_C/resources напрямую из приложения, чтобы получить некоторые ресурсы на C. Теперь требуется, чтобы мне сначала нужно было позвонить B по номеру 192.168.1.2 (IP-адрес B): GET https://192.168.1.2/resources, а затемB должен помочь A переслать все на C, а также получить ответ от C к A. B должен вслепую проходить через пакеты, включая пакеты SSL.

Ниже приведен фрагмент кода:

NSURL *newUrl = [NSURL URLWithString:@"https://192.168.1.2/resources"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:newUrl];

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError)

Я получаю следующую ошибку:

2018-11-26 10:10:50.666321-0500 [72744:1796043] TIC SSL Trust Error [3:0x600002c98180]: 3:0
2018-11-26 10:10:50.667535-0500 [72744:1796043] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9843)
2018-11-26 10:10:50.667641-0500 [72744:1796043] Task <68E602A9-1FF8-4A60-AE72-191AA1D8D730>.<0> HTTP load failed (error code: -1202 [3:-9843])

Однако, если я использую http://192.168.1.2/resources в качестве URL (HTTP здесь, а не HTTPS), это работает, что означает, что я могууспешно получить доступ к ресурсам на удаленном сервере из A. Конструкция B заключается в том, что он должен вслепую проходить через C все, включая сеанс SSL, что означает, что я вообще не надеюсь иметь дело с сертификатами SSL.

Я точно не знаю, почему iOS выдает ошибку в этом случае, но я хочу знать, есть ли способ избежать этой ошибки.

...