升级为iOS9后,默认请求类型为https,如何使用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协议,使用私有加密方式保证数据安全。现在也不能马上改成HTTPS协议传输。

解决方案

方案一:让服务器修改为TLS1.2

方案二:在plist中设置使用http请求

  1. 在Info.plist中添加NSAppTransportSecurity类型Dictionary
  2. NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES

第一步:在plist中添加NSAppTransportSecurity项,此项为NSDictionary

第二步:在NSAppTransportSecurity下添加


1

NSAllowsArbitraryLoads类型为Boolean,value为YES

苹果正在加大应用安全的管控,这个举措可以看出苹果对信息安全的重视,也暴露出大部分应用传输数据时都是未经过加密的,或使用私有方式加密,以至于苹果开始对开发者提出要求。
私有加密虽然一定程度上是安全的,但是终究不是一个长久之计。应该早日使用HTTPS确保信息安全!

时间: 2024-10-13 13:29:53

升级为iOS9后,默认请求类型为https,如何使用http进行请求会报错(引用他人的)的相关文章

请求一个方法,后台能正常执行,前台报错404

************请求一个方法,后台能正常执行,前台报错404************ 前言:我是通过ajax请求,虽然后台能正常执行, 但是ajax却不能执行success方法,执行了error方法. 前台报错404,说找不到XX.jsp页面. 后台方法是一个没有返回值的方法. 分析:找不到页面,说明是去寻找视图解析器了.那么我们这个不需要返回,怎么办呢. 分析后发现,后台的方法要么是请求modelAndView,要么返回的是json. 所以我们这个方法虽然没有返回,但是还是要在方法上写

Mac升级到Yosemite后默认的php版本不支持imagetfftext函数问题解决

Mac升级到yosemite后,php也自动升级,运行项目的时候发现后台验证码显示不出来.调试一下发现imagetfftext这个函数不存在,应该gd没有安装完全,因为Mac上的php实现系统自带的,只能通过重新安装php来解决[不能通过安装扩展来处理],经过对比发现使用homebrew安装会方便点... 首先重新安装freetype,jpeg,libpng,gd #先删除之前的再安装新的,没有安装过的则直接跳过即可 sudo brew rm freetype jpeg libpng gd zl

mac 升级EI Capitan后遇到c++转lua时遇到libclang.dylib找不到的错

升级EI Capitan后,打包lua脚本时,会报这个错: LibclangError: dlopen(libclang.dylib, 6): image not found. To provide a path to libclang use Config.set_library_path() or Config.set_library_file(). 处理方法,重新设置libclang.dylib库的路径,打开 /Applications/Cocos/frameworks/cocos2d-x

关于MYSQL:外键删除后,查询表发现外键依旧存在,再删一次会报错:原因及相关解决办法

1.创建表test6:外键名为test3_fk mysql> create table test6( -> id int, -> test_name varchar(32), -> constraint test3_fk foreign key(test_name) references student(name) -> ); Query OK, 0 rows affected (0.40 sec) mysql> desc test6; +-----------+---

装完RHEL7后,重新开机启动后显示:Initial setup of CentOS Linux 7 (core) 提示license报错

装完RHEL7后,重新开机启动后显示: 1) [x] Creat user 2) [!] License information (no user will be created) (license not accepted) Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]: 解决方法: 输入"1",按Enter键 输入"2",按Enter键 输入

tp5请求类型

获取请求类型 在很多情况下面,我们需要判断当前操作的请求类型是GET.POST.PUT.DELETE或者HEAD,一方面可以针对请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求. ThinkPHP5.0 取消了用于判断请求类型的系统常量(如IS_GET,IS_POST等),统一采用 think\Request类 处理请求类型. 用法如下 // 是否为 GET 请求 if (Request::instance()->isGet()) echo "当前为 GE

【初识TypeScript】 配置环境后运行Hello World编译报错.

第一次接触TypeScript,配置好环境后, 发现连编写个最基本的Hello World都报错,代码如下: const hello:string = "Hello World!" console.log(hello) 报错代码如下:error TS1008: Unexpected token; 'module, class, interface.................. 再次编写其他简单代码,又一次报错,代码如下: let x: [number, string]; x =

C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法

原文:C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法 本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T:微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式.曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的:当初一度放弃了这个问题.后来突然冷静分析了一下,微软不可能做

更改CloudStack中KVM平台的Windows虚拟机默认磁盘类型为VirtIO

前言 本文的目的是为了解决在使用CloudStack(CloudPlatform)时,基于KVM虚拟化平台,Windows虚拟机的性能低下的问题. 此性能,主要指磁盘IO和网卡性能. 相关文档 由于CS文档中,只强调了PV这个概念,根据PV模式区分使用不同的硬件接口类型.所以收集部分链接给大家扫盲. 关于PV(Paravirtualization-半虚拟化)模式的概念,请参阅: http://www.rackspace.com/knowledge_center/article/choosing-