在开发app或者小程序时,无法看到应用与服务器之间发送和接收的内容,导致获取请求参数和响应参数比较困难。Charles是一个运行在PC上的web代理。我们可以将手机端应用程序通过Charles访问网络,便可以在Charles上记录并显示发送和接收的所有数据。
Charles官网:https://www.charlesproxy.com/
Charles的作用:
1. 对请求抓包
保证iPhone和PC工作在同一局域网内(即同一个WIFI下)。
1.1 获取PC端的IP地址
打开网络偏好设置...
获取IP地址。
1.2 配置iphone代理
设置->无线局域网
HTTP代理->配置代理(手动)
1.3 PC端的Charles设置
具体的端口可以从Charles菜单栏 -> Proxy -> Proxy Settings中查看。图示如下:
iPhone代理配置完成后,Charles会弹出连接提示框,点击Allow之后即可使用Charles对从该iPhone发出的请求进行抓包了。图示如下:
2. 抓取HTTPS请求
配置iPhone代理完毕后,就可以通过Structure或者Sequence窗口预览HTTP请求的数据了。但由于HTTPS请求被加密过,预览请求时只能预览到乱码数据。要预览到HTTPS请求的数据明文,需要PC和iPhone安装证书授权。
2.1 PC端安装证书
在Charles菜单栏 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以为PC安装证书,证书可以在Mac的钥匙串中查看。图示如下:
证书可以在Mac的钥匙串中查看,双击证书,将信任权限设定为始终信任。图示如下:
2.2 ipone手机安装证书
在iPhone浏览器中访问http://charlesproxy.com/getssl可以下载证书并安装。
基于iOS的证书信任机制,在安装完成并信任证书后,需要到iPhone设置 ->通用-> 关于本机 -> 证书信任设置中启用根证书。
2.3 启动抓包的SSL权限
在Charles菜单栏 -> Proxy -> SSL Proxying Settings中勾选Enable SSL Proxying,然后在Locations中添加需要抓包的Host和Port即可。图示如下:
即对所有的https都进行抓包。