Charles的安装到iOS开发中使用
简介
是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
主要功能
-
支持SSL代理。可以截取分析SSL的请求。
-
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
-
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
-
支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
-
支持重发网络请求,方便后端调试。
-
支持修改网络请求参数。
-
支持网络请求的截获并动态修改。
-
检查HTML,CSS和RSS内容是否符合W3C标准。
没错,以上来自百度百科:https://baike.baidu.com/item/Charles/7841179?fr=aladdin
按照我的说法就是抓取网络数据的.
我们在开发中,某些功能的调试和测试需要后台配合修改数据.有了它你就可以一人独自嗨,想怎么修改测试就怎么来😁.
一.安装
Charles下载地址:https://www.charlesproxy.com
- 没注册的charles,30分钟就会关闭一次.但是依然还是可以使用的.
二.抓取手机网络包
-
Charles默认抓取电脑网络数据
设置Proxy.png
勾选表示抓取电脑网络数据.png -
设置抓取手机数据,这里以iOS为例
- 保证手机和电脑在同一个wifi下面
-
查看当前电脑ip
image - 配置Charles:在菜单栏上选择 Proxy->Proxy Settings,填入代理端口 8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理
-
在手机wifi网络中添加代理,输入电脑IP和charles的端口号 8888
image.png
- 配置抓HTTPS包
-
Mac安装SSL证书,在Help→SSL Proxying→Install....,如下图所示:
image.png -
选择后,就会出现证书下载,下载成功后会电脑”钥匙串访问“中看见(这里我已经安装并信任过了),然后双击下载的证书,勾选信任即可,如下图所示(在钥匙串访问中寻找下Charles):
image.png -
配置信任
image.png -
手机安装SSL证书,在SSL Proxying中勾选Install ...Mobile Device 会弹出一个框,用手机(处于代理状态下)登陆指定的url下载证书即可,如下图所示:
然后按照顺序按照即可.png
-
这时候你抓https的时候还是发现不行,乱码加unknown
image.png
-
这时候我们还需要一步操作,就是将想要抓的https加入到SSL代理中,这样才能被Charles识别并解析,选择我们要抓的请求,右键你乱码的域名选择"Enable SSL Proxying",如下图所示:
image.png
三.其它常用功能
-
网络限速
网络限速.png
2.通过修改数据源
-
修改服务器返回的内容
Map Remote(Tools→Map Remote Settings),将网络响应定向至另外一个网络服务,从而达到修改返回内容的目的,如下图所示:
修改请求服务器.png -
Map Local(Tools->Map Local Settings),将网络响应定向至本地文件,从而达到修改返回内容的目的,如下图所示:
image.png
3.断点调试,修改网络请求和响应内容
- 打断点
选中需要打断点的域名(一般断点在请求的父目录),右键->Breakpoints -
打了断点,代理会在发送请求的时候拦截并断点网络请求.
image.png
4.设置关注请求(有时间,一时间会有多个请求,为了只关注我们关注的请求,简化),选中我们关系的请求,设置Focus即可.
image.png