美文网首页
iOS中如何允许HTTP请求

iOS中如何允许HTTP请求

作者: breaktian | 来源:发表于2023-11-22 10:31 被阅读0次

网络概述和允许HTTP请求

网络,可能是现在每个APP必备的功能,所以网络相关的逻辑,贯穿整个APP,网络相关的框架稳定性,易用性,封装的好坏,直接影响到项目的质量;由于这是项目,不是深入课程,所以基本上大部分功能,都是使用目前流行的第三方框架;原因前面也说了。

网络框架

OC这边常用的是AFNetworking,但直接使用它还需要很多封装,所以课程里使用MSNetwork,他是在AFNetworking上进行了封装,但项目使用时还要再次封装;Swift常用的Moya

允许HTTP请求

从iOS9开始,推荐使用HTTPS,如果使用的HTTP,默认情况下会出现如下错误:

The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

这是因为iOS9引入了新特性App Transport Security (ATS),他要求App内网络请求必须使用HTTPS协议,也就是默认情况下,不允许发送HTTP请求,但我们这里后端实现的API是HTTP协议,虽然后端课程中讲解了HTTPS,但为了降低课程难度,这里我们先允许HTTP请求,后面在讲解HTTPS请求。

解决方法是要么改为HTTPS,要么声明可以使用HTTP,可以声明部分使用HTTP,也可以所有;但需要说明的是如果APP内所有请求都是HTTP,那么如果要上架App Store的时候基本都会被拒。

源码方式更改

这种方式是直接编辑配置文件。打开工程下的Info.plist文件,在文件dict标签内添加如下内容:

<key>NSAppTransportSecurity</key>  
<dict>  
    <key>NSAllowsArbitraryLoads</key>
    <true/>  
</dict> 

加完之后

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
</dict>
</plist>

意思是允许使用HTTP,当然还可以配置指定的域名使用HTTP,我们这里是配置所有域名。

可视化更改

通过可视化编辑器。找到:

App Transport Security Settings,下面的Allow Arbitrary Loads设置为Yes。

这样的编辑方式,同样适用于其他配置文件,后面就不在讲解了。

相关文章

网友评论

      本文标题:iOS中如何允许HTTP请求

      本文链接:https://www.haomeiwen.com/subject/sbwiwdtx.html