您的位置:

深入了解Charles配置

一、入门概述

Charles是一款常用的网络抓包工具,可以在Windows、Mac OS、Linux等操作系统上运行。在使用Charles之前,首先需要下载并安装Charles软件。当然,除了官网提供的下载,也可以通过一些第三方渠道获取。

安装完成后,打开Charles,进入Proxy->Proxy Settings菜单,可以看到本地代理端口号一般为8888,默认的HTTP代理端口和HTTPS代理端口都是空白的,这就是我们常说的Charles的代理服务器地址。

二、配置HTTPS代理

由于HTTPS传输过程中的数据都是加密的,所以需要对HTTPS流量进行解密才能查看请求和响应的内容。首先,需要在Charles中设置SSL代理,选择Proxy->SSL Proxying Settings,点击“Add”按钮,填写要被代理的服务器和端口号,这些信息一般可以在请求头中获取到。


Name: www.example.com
Location: www.example.com/*
Port: 443

然后将“Enable SSL Proxying”这个选项打上勾,即可配置完成。此时如果再次访问被代理的https网站,就能在Charles中看到请求和响应的明文内容了。

三、替换响应内容

使用Charles进行web开发时,可能需要对某些请求返回的响应内容进行处理。例如,后台返回的JSON数据中有些字段需要自己定义,或者需要模拟某个请求返回特定的结果。此时就可以使用Charles的Rewrite功能,替换服务器返回的响应内容。

选择Tools->Rewrite,在“Add”按钮中填写匹配的URL,例如:


Type: Body
Enabled: √
Match: *.json

然后在“Action”选项卡中填写要替换的响应内容即可。例如,将返回的JSON中的“name”字段替换为“Charles”:


Type: Body
Match: name
Replace: Charles

四、过滤HTTP请求

在开发调试中,需要对某些请求进行单独处理。Charles可使用Filters来过滤请求,例如暂时忽略当前请求或忽略满足指定模式的一组请求。需要过滤的某个请求可以右键选择“Breakpoints”,然后在“Add breakpoint”填写相应信息即可。此时,请求进来时就会中断,可以对请求进行编辑或者保持原样。


Host: app.example.com
Path: /api/getData
Method: GET

五、模拟延迟和丢包

在测试应用程序时,可能需要模拟网络延迟或丢包等异常情况,以便观察应用程序的应对情况。同时,也可以模拟在低网络带宽下的应用场景。Charles在“Tools”菜单下提供了“Throttle”功能,可以模拟网络丢包和延迟的情况。选择“Tools”->“Throttle Settings”,可以设置带宽、延迟和丢包的情况。

六、结语

以上是配置Charles的一些基础知识和应用,希望对使用Charles进行开发调试的开发人员提供一定的帮助。