1.Charles介绍:
Charles is an HTTP proxy / HTTP monitor / Reverse Proxy thatenables a developer to view all of the HTTP and SSL / HTTPS traffic betweentheir machine and the Internet. This includes requests, responses and the HTTPheaders (which contain the cookies and caching information).
http代理服务器,可以查看http的请求/返回,并且可以做转化。
安装SSL证书之后,也能够查看并转换https
工作中常用charles的场景:
抓包,看接口具体的请求与返回数据。
重定向,例如我现在只有一个线上的app正式包。用charles可以直接转成你的测试环境的包,而不需要重新打包安装。web上的网络访问,也可以使用charles将访问线上地址,转成访问你的测试环境的地址。
模拟请求、返回数据,构造场景。通过修改本地数据,方便的发送你期望的请求数据、或者模拟接收你需要的返回数据,而不需要在实际的场景中构造。
下载、安装:
下载地址:
https://www.charlesproxy.com/download/
安装: dmg解压安装
注册:
打开charles,进入Help→ Register,输入下面的注册信息:
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
注:不注册也可以使用,但是有使用限制。每30分钟它就会自动退出一次。所以建议注册。
基本操作:
电脑连接charles-- Mac OS X proxy
Proxy→ Mac OS X proxy
勾选: mac电脑上所有的网络请求走charles
不勾选:mac电脑上的所有网络请求不走charles。
手机连接charles:
打开charles,查看机器IP: Help→ Local IP address;
配置chalres访问端口:Proxy→proxy settings, 默认8888:
打开手机wifi,连接charles:进入你手机的wifi设置,输入以上的IP地址和端口。
不同手机的wifi设置稍有不同,以iOS为例:
4. 重启wifi,使配置立即生效。
5. 在chales的UI上点击允许连接。
6. tips:万一点错了,点了拒绝怎么办?Proxy→Access Control Settings,加入你手机的IP。
清空记录-- 关闭session:
新建session (记录recording):
Recording is the primary function of Charles. Requests and responses are recorded to the current Session for you to later inspect and analysis.
查看所有接口请求/返回:
按照structure查看-- 按照接口地址展示
按照sequence查看–按照请求先后次序展示:
overview:请求的基本信息,包括请求的网络地址、请求方式、响应时间等。
请求--查看请求的head、cookie等:
返回:查看返回数据,支持多种格式展示:
filter:
在众多的数据中,筛选自己想要的网络请求。例如只关注访问线下环境的请求
技能升级:
host转换–Map remote。访问A地址的时候,其实访问的是B地址。例如,访问线上环境地址,用charles重定向到你的测试地址:
tools->Map remote,进入Map Remote Settings:勾选“Enable Map remote”,点击add。
Edit Mapping。From是你的A地址,To是你的B地址。如果协议和port不填,就默认所有的都生效。
点击保存。再次访问A地址,从charles上能看到,其实访问的是B地址。典型的用于mirror环境验证、线上线下环境切换等。
注意:在setting 中,勾选才生效。
模拟请求/返回-- map local:用于模拟请求数据或者返回数据。case:抓到一个请求返回的金额为1,期望看金额返回为100或者0.01时的展示。
先将接口之前的数据保存在本地。在接口recording上右键,选择save Response。
修改本地数据。例如将金额的1改成100. json文件推荐在 json.cn 中改,避免格式错误。
在接口recording上右键,选择map local,进入edit mapping。或者从tools菜单进入也可以。
选择你本地的local文件
通过修改本地文件,即可模拟该接口的返回数据为本地文件的内容。
设置中断-- Blacklist:为了保证产品的健壮性,可能会需要模拟依赖的服务器挂了的异常处理。例如顺手付接口。方法:
在接口recording上右键,选择Black List。
或者Tools→Black List。勾选enable,add。写入接口信息。
模拟网速-- 构造弱网环境:
Proxy→Throttle settings,调低上传下载带宽,构造弱网环境。
重复请求–Repeat:
模拟再次发同样的请求,无需触发。
右键点击接口,选择repeat。会直接发出一条同样的请求。
支持https:
电脑上安装证书:
点击Charles的顶部菜单,选择“Help” -> “SSL Proxying” -> “Install Charles RootCertificate”,然后输入系统的帐号密码,即可在KeyChain看到添加好的证书
注意:PC端添加证书之后需要到钥匙串中始终信任下
charles信任443端口:
手机上SSL证书安装:
点击Charles的顶部菜单,选择“Help” -> “SSL Proxying” -> “Install Charles Root Certificateon a Mobile Device or Remote Browser”,然后就可以看到Charles弹出的简单的安装教程。如下图所示:
在设备上设置好Charles为代理后,在手机浏览器中访问地址:http://chls.pro/ssl即可打开证书安装的界面,安装完证书后,就可以截取手机上的Https通讯内容了。
iOS 10.3 以上,安装新的自定义证书后,必须手动开启信任开关:
设置->通用->关于本机->证书信任设置->找到charles proxycustom root certificate然后信任该证书即可.
领取专属 10元无门槛券
私享最新 技术干货