抓包工具Charles使用
介绍:
Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。
主要功能:
1、支持SSL代理,可以截取分析SSL的请求
2、支持流量控制,可以模拟慢速网络以及等待时间较长的请求
3、支持AJAX调试,可以自动将json或xml数据格式化,方便查看
4、支持AMF调试,可以将Flash Remoting或Flex Remoting 信息格式化,方便查看
5、支持重发网络请求,方便后端调试。
6、支持修改网络请求参数。
7、指出网络请求的截取并动态修改。
8、检查HTML、CSS和RSS内容是否符合W3C标准。
抓包:
charles的首页:
如果返回的信息是乱码,首先看是在http请求还是https请求,如果是http请求,那么就是返回来的中文乱码;解决方案:找到软件包安装路径,Contents目录下的info.plist,打开文件找到vmoption,添加-Dfile.encoding-UTF-8即可。
如果是https请求出现乱码,如下情况:
这时候你就需要安装Charles的CA证书了,首先到去 http://www.charlesproxy.com/ssl.zip 下载CA证书文件。双击crt文件,选择总是信任就可以了,当然如果要抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在手机浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。然后你就可以告别那烦人的乱码,可以愉快地抓包了。如果这时候你还是抓不了的话,检查一下Proxy-->SSL Proxying Settings是否设置OK,设置参考下图:
抓包
首先使得手机和电脑在同一个局域网内,不一定非要一个IP段,只要是同一个路由器下就可以了。按照上面说的整数安装号,然后找到电脑的IP,可以选在在中断上输入ifconfig en0来获取,也可以在charles的help-Local IP Address查看IP
查看端口
打开Charles的代理设置:proxy-proxy seting,设置一下端口号,默认的是8888,这个只要不和其他程序冲突即可,并且勾选Enable transparent HTTP proxying
手机上设置
手机上随便打开一个app,这时charle会弹出框确认是否进行代理,点击allow就可以,然后在Charles上就有手机请求
过滤
在 Charles 的菜单栏选择 Proxy->Recording Settings
,然后选择 Include
栏,选择Add
,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:
另外一种方法就是在一个网址上右击选中Focus,然后其他请求就会被放到另外一个叫other Host的文件夹里面,这样达到过滤目的
断点
在Charles发起一个请求的时候,我们可以给某个请求打一个断点,然后来观察或者修改请求,或者修改请求返回的内容,但是在这个过程中要注意请求超时时间问题,要针对某个请求设置断点,只要请求网址求在这个右击选Breakpoints就可以断点某个请求了。
模拟网速慢
在Proxy->Throttle Seting,选择Enable Throttling,在Throttle preset下选择网络类型即可,
请求重定向
请求重定向的作用是什么呢?开中一般都是测试环境,如果我们想对比一下和线上版本的区别,可以测试的请求重定向到正式环境,在选择Tools->Map Remote下:
内容替换
有时候会测试 一下请求的参数不同会带来不同的返回结果是都达到业务需求,或需要不同的返回结果来验证我们对数据处理是否正确,我们可以使用Charles可以自己把控接口返回来的内容,比如数据的空与否,数据的长短等等,在Tools->Rewrite Settings下:
参考:https://www.cnblogs.com/cangqinglang/p/10257550.html
posted on 2019-12-19 14:25 lovely&lucy 阅读(1592) 评论(0) 编辑 收藏 举报