ios - [iOS]如何使用私有IP地址的NSURLConnection?
问题描述
我在 A (iPhone) 上有一个 iOS 应用程序,有一台计算机 B 在与 A 所在的同一网络中,并且互联网上还有一个远程服务器 C。本来通过NSURLConnection可以GET https://domain_of_C/resources
直接从app调用获取C上的一些资源,现在的要求是我需要先调用B在192.168.1.2(B的IP地址)by: 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 在这种情况下会抛出错误,但我想知道是否有任何方法可以避免这个错误。
解决方案
推荐阅读
- outlook-web-addins - Deploying Outlook Web Add-in from Powershell
- reactjs - react-router中带有兄弟姐妹的嵌套开关
- nginx - Nginx HTTP 到 HTTPS 301 循环重定向
- google-chrome - 通过扩展访问 Chrome DevTools 的快捷方式
- scrapy - 爬取 405
- macos - 如何在 Mac 上的 x86 程序集 (NASM) 中打印有符号整数
- opencv - Python:查找图像中黑色像素的数量
- python-3.x - 在python问题中覆盖变量
- ios - Facebook 作者 user.credential 返回 nil
- dart - 如何分配
- > 列出变量?