Charles从入门到放弃
Charles版本:4.0.2
一、开始
连接方式
- 方法一:电脑和手机连接同一个wifi
- 方法二:电脑使用网线连接网络,手机通过USB连接电脑
二、过滤网络请求
1.简单过滤
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031195642732-1111174727.png)
在Sequence模式下,就可以看到Filter,输入要过滤的关键字即可。
2.长期特定的网络封包
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031195723951-627252784.png)
路径:Proxy->Recording Settings->Include→Add
在编辑框中填入要封的网络请求
3.关注特定的网络请求
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031195800560-631913134.png)
在想要特定关注的网络请求那行,右键勾选"Focus"即可
三、抓取手机网络包
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031195843388-17102909.png)
前提:手机,电脑连结的是通一个wifi网络
在菜单栏上选择 Proxy->Proxy Settings,填入代理端口 8888,并勾上 “Enable transparent HTTP proxying” 即完成了代理
查看电脑IP地址
在手机wifi网络中添加代理,输入电脑IP和charles的端口号 8888
抓HTTPS包
1.Mac安装SSL证书
在Help→SSL Proxying→Install....
选择后,就会出现证书下载,下载成功后会电脑”钥匙串访问“中看见(这里我已经安装并信任过了),然后双击下载的证书,勾选信任即可。
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031195959060-820654922.png)
2.手机安装SSL证书
在SSL Proxying中勾选Install ...Mobile Device 会弹出一个框,用手机(处于代理状态下)登陆指定的url下载证书即可。
这时候你抓https的时候还是发现不行,乱码加unknown(如下图)
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200037185-885857105.png)
这时候我们还需要一步操作,就是将想要抓的https加入到SSL代理中,这样才能被Charles识别并解析
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200056451-593041837.png)
选择我们要抓的请求,右键选择"Enable SSL Proxying"
这时我们发现不再乱码和unknown了
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200121920-1435217047.png)
四、网络限速
开发中常备限速,通常对于Chrome我们可以使用浏览器中的"Network中Online修改",下拉还有3G等设置。
但是通过代理我们可以做的更全更多
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200206716-160178505.png)
在"Proxy→Throttle Settings"中,我们可以给所有的网络限速,也可以通过勾选"Only for selected hosts"限制指定的请求速度
五、修改网络请求内容
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200230529-466627556.png)
选中一条网络请求,然后右键选择"Compose",就会出现上图下半部分的框,可以修改几乎任何你可以想到的请求参数,点击"Execute"执行即可
六、修改服务器返回的内容
1.Map Remote(Tools→Map Remote Settings)
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200906966-1386597355.png)
将网络响应定向至另外一个网络服务,从而达到修改返回内容的目的
2.Map Local(Tools->Map Local Settings)
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200919091-1562549870.png)
将网络响应定向至本地文件,从而达到修改返回内容的目的
3.Breakpoints替换返回内容(右键->Breakpoints)
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031200922966-1103069459.png)
通过名称也可以看的出来,这个类似于一种断点的功能,代理会在发送请求的时候拦截并断点网络请求,这就为我们修改网络信息提供了便利。
可以编辑请求的参数和返回的参数。
七、反向代理
反向代理(Proxy→Reverse Proxies Settings)也是一个常用的功能,特别是对于本地开发且需要域名的情况下
![](https://images2017.cnblogs.com/blog/743207/201710/743207-20171031201018373-1471785415.png)
这个截图的意思是 将本地 57689端口映射到www.os.com域名的80端口
更多精彩文章请访问GitHub博客
无特殊声明的文章均为原创!
原创文章如若转载,请注明出处!http://www.cnblogs.com/zqzjs/
告诫自己即使再累,也不要忘记学习。成功没有捷径可走,只有一步接着一步走下去!