ios 发送http请求失败

iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)

原先是发送的ip地址的请求,现在改成域名,ios请求发送就出现了问题。

解决方式:

打开项目 info.plist->open as source code->添加上

NSAppTransportSecurity
 
    NSExceptionDomains
   
      自己的域名
     
        NSExceptionAllowsInsecureHTTPLoads
       
        NSIncludesSubdomains
       
     

   

 

选择使用 NSExceptionDomains 来针对特定的域名,通过设定该域名下的 NSExceptionAllowsInsecureHTTPLoads 来开放 HTTP 应该要相对容易过审核。“需要访问的域名是第三方服务器,他们没有进行 HTTPS 对应”会是审核时的一个可选理由,但是这应该只需要针对特定域名,而非全面开放。如果访问的是自己的服务器的话,可能这个理由会无法通过。

第二种方式:

NSAppTransportSecurity
 
    NSAllowsArbitraryLoads 

 
 

你依然可以添加 NSAllowsArbitraryLoads 为 YES 来全面禁用 ATS,不过如果你这么做的话,需要在提交 app 时进行说明,为什么需要访问非 HTTPS 内容。一般来说,可能简单粗暴地开启这个选项,而又无法找到正当理由的 app 会难以通过审核。

你可能感兴趣的:(ios 发送http请求失败)