一.简介
Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。二.Charles主要功能
1.支持SSL代理。可以截取分析SSL的请求。2.支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
3.支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
4.支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
6.支持重发网络请求,方便后端调试。
7.支持修改网络请求参数。
8.支持网络请求的截获并动态修改。
9.检查HTML,CSS和RSS内容是否符合W3C标准。
三.开始抓包
1.把电脑设为代理:Proxy -> Recording(Session 1),这时你会发现,你通过浏览器请求的网址都会出现在这里,iOS模拟器的所有的网络请求也会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。四.抓取真机上的包
首先使手机和电脑在一个局域网内,不一定非要是一个ip段,只要是同一个路由器下就可以了。按照上面说的把证书安装好,然后找到电脑的IP,你可以选择在终端输入ifconfig en0
来获取,也可以选择打开网络偏好设置来查看。接下来打开Charles的代理设置:
Proxy->Proxy Settings
,设置一下端口号,默认的是8888,这个只要不和其他程序的冲突即可,并且勾选Enable transparent HTTP proxying
。在手机上连接上和电脑在同一局域网的网络上设置HTTP代理。端口号就是刚刚在Charles上设置的那个。
然后在手机上随便打开一个网址,这是Charles会弹出一个框让你确认是否代理,点击allow就可以了,然后你就会在Charles上发现手机上的请求了。
五.过滤
在 Charles 的菜单栏选择Proxy->Recording Settings
,然后选择 Include
栏,选择Add
,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。六.其他
charles还能模拟网速慢、设置断点、请求重定向、内容替换等用法,因为目前没有涉及到,所以暂时不赘述了,可以参考这篇文章点击打开链接