1.简介
今天就说一些Charles的其他操作、以及抓包跨域的问题和常见的问题如何解决。到此Charles这一系列的文章也要和大家说再见了,其他什么小程序、Android7.0等等的问题可以查看宏哥的Fiddler系列文章,只不过是将Fiddler换成Charles而已。
2.模拟403/404
其实之前在过滤请求中,宏哥已经介绍过White List...(白名单)刚好和这个介绍的相反Block List(黑名单),顾名思义就是设置后,就会被关进小黑屋,昏天暗地不见阳光。而在Charles这里将ip或者域名加入黑名单后,服务器返回的响应结果被Charles拦截不返回,就会出现403或者404,具体操作步骤如下:
1.菜单栏选择 “Tools”->”Block List...”,如下图所示:
2.设置允许启用黑名单功能,选择接口返回错误的形式(404 或者403),添加接口地址并保存,如下图所示:
注:【blocking action】 选项可以选择“Drop connection”或者 “Return 403 response”.前者接口会直接返回404错误,后者接口返回403错误
3.选中需要返回404/403的接口,点击【Ok】,如下图所示:
4.再次请求效果如下(接口返回403),如下图所示:
5.再次请求效果如下(接口返回404),如下图所示:
不用将其删除(Remove)或者不勾选启用黑名单即可。
3.屏蔽web网页的抓包信息
应用场景:屏蔽web网页的抓包信息
proxy-->windows proxy(前面没有对勾,就不会抓到 PC浏览器的包)
proxy-->macOS proxy(mac电脑)
4.Charles跨域
1.解决跨域问题,1.菜单栏选择 “Tools”->”Rewrite”。如下图所示:
2.勾选启用重写,添加左边重写。如下图所示:
3.编辑名称和添加需要重写的请求,如下图所示:
4.点击下面的添加,加Access-Control-Allow-Origin、access-control-allow-credentials(true),其他响应头参数视情况而定
5.配置完毕以后,重写页面如下,点击应用,确定。配置完毕,重新发起请求,会直接响应本地数据。如下图所示:
5小结
Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。该软件是用Java写的,能够在Windows,Mac,Linux上使用。开发iOS都在Mac系统上吧,安装Charles的时候要先装好Java环境。这么好的软件不是免费的,官网要好几十刀呢,我这里有一个Mac上的**版,点击这里下载,当然不是最新版的。如果你想体验最新版,Charles是提供试用的。
Charles主要功能
支持SSL代理。可以截取分析SSL的请求。
支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。
支持AJAX调试。可以自动将json或xml数据格式化,方便查看。
支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。
支持重发网络请求,方便后端调试。
支持修改网络请求参数。
支持网络请求的截获并动态修改。
检查HTML,CSS和RSS内容是否符合W3C标准。
Charles系列的使用教程到这里也要和大家说再见了,感谢大家这段时间支持和学习以及一路的陪伴。再次感谢大家读者朋友期待其他系列与宏哥再见。
6.常见问题解决
1 . 手机无法抓包的问题
检查是否配置好代理IP,端口号
检查是否与电脑在同一个局域网
检查是否关闭防火墙,代理,FQ软件
弹出询问点击“allow”或者“deny”时,误点“deny”,关闭charles重启,手机再次浏览则会重新弹出询问
2 . 解决request和response信息中的中文乱码问题
方法一 :修改charles windows版本安装目录下也有一个Charles.ini的配置文件
修改后的配置文件 添加-Dfile.encoding=UTF-8即可。
通过以上方法就可以解决Request和Response的中文乱码问题了。
3.设置代理后,浏览器打不开网页
浏览器--设置--打开代理设置--局域网设置--去除代理服务器下图选项后-确定