ios – SCNetworkReachability是否尊重HTTP代理设置?

ios – SCNetworkReachability是否尊重HTTP代理设置?,第1张

概述我担心答案是否定的,但我希望有人可以提供明确的答案,因为目前的iOS SDK文档中没有记录. 我们看到NSURLConnection能够通过HTTP代理连接到https://mysite.com但是,由于在这种情况下设置本地DNS的方式,mysite.com的DNS查找将失败.在这种情况下,似乎SCNetworkReachability正在尝试为mysite.com执行DNS查找并失败.同时,NS 我担心答案是否定的,但我希望有人可以提供明确的答案,因为目前的iOS SDK文档中没有记录.

我们看到NSURLConnection能够通过http代理连接到https://mysite.com但是,由于在这种情况下设置本地DNS的方式,mysite.com的DNS查找将失败.在这种情况下,似乎SCNetworkReachability正在尝试为mysite.com执行DNS查找并失败.同时,NSURLConnection能够连接.

我们已将Apple Reachability示例代码合并到我们的应用程序中,并使用mysite.com调用SCNetworkReachabilityCreateWithname.

解决方法 我无法提供明确的答案,但我可以提供更多的经验证据和一些理由,答案是否定的.我有一个使用SCNetworkReachabilityGetFlags来检查特定主机是否可访问的应用程序(例如:www.mysite.com).根据该可达性检查,它然后使用[NSMutableData dataWithContentsOfURL:]下载数据.

该应用程序一直运行良好,但最近我一直在做一些编码工作,通过公司http代理进行网络访问.在iOS模拟器中运行应用程序(使用我的Mac上配置的代理设置)时,可访问性检查失败.起初我以为iOS模拟器可能没有使用Mac的代理设置,但模拟器中的Mobile Safari工作正常.所以我删除了我的应用程序中的可达性检查,并且对[NSMutableData dataWithContentsOfURL:]的调用工作正常.这似乎表明SCNetworkReachability不尊重代理设置.

考虑到这一点,如果您将SCNetworkReachability视为在TCP / IP级别运行而不是在http级别运行,这可能是正确的行为,就像在企业防火墙后面的Mac / PC上Ping Google.com一样也工作. http代理(顾名思义)是http协议,而不是整个TCP / IP堆栈.

读完this question on Reachability的答案之后,我倾向于完全依靠我的可达性检查.尽管直到现在它只是模拟器中的问题,但在其他情况下(例如需要认证的公共WiFi热点)可能存在问题.

总结

以上是内存溢出为你收集整理的ios – SCNetworkReachability是否尊重HTTP代理设置?全部内容,希望文章能够帮你解决ios – SCNetworkReachability是否尊重HTTP代理设置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1034470.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存