iOS http无法请求的解决方法

iOS9对应用通讯安全策略进行了升级, 已不再支持http这种不安全的协议(具体可见网址:What’s New in iOS 9.0)

新特性要求App内访问的网络必须使用HTTPS协议,http是超文本传输协议, 信息采用明文传输, 而https则使用SSL加密传输协议进行传输。
但是现在公司的项目使用的是HTTP协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。

因此设置成http访问在某些情况下是必然的,具体的更改方式有两种

方法一

Info.plist文件中添加:

     <key>NSAppTransportSecuritykey>  
      <dict>  
          <key>NSAllowsArbitraryLoadskey>
          <true/> 
      dict> 

方法二

不过上面介绍的方法虽然解决了网络访问的问题,但是苹果提供的安全保障也被关闭了。但是按照国内的现状,关闭这个限制也许是更实际的做法。至于原因就太多了,第三方SDK(几乎都是访问HTTP),合作伙伴接入(不能要求它们一定要支持HTTPS)。

如果你的App没有受到这些原因的限制,还是更建议你增加HTTPS支持,而不是关闭限制;

出于安全考虑我们提倡使用HTTPS,https虽然还未普及,但是它的加密比较安全性高,所以比较建议将https设为优先,http设置为例外访问,具体如下:

 <key>NSAppTransportSecuritykey>
    <dict>
        <key>NSExceptionDomainskey>
        <dict>
            <key>qq.comkey>
            <dict>
                <key>NSIncludesSubdomainskey>
                <true/>
            dict>
            <key>sina.com.cnkey>
            <dict>
                <key>NSIncludesSubdomainskey>
                <true/>
            dict>
           dict>
   dict>

根据自己需要的域名修改, NSIncludeSubdomains 就是包括子域的意思。

转载:
http://blog.csdn.net/alenczf/article/details/51291411
参考:
https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW44

你可能感兴趣的:(Unity3D,iOS)