Charles(v4 @Windows)的使用

移动开发经常都需要抓包调试,之前用的是Window的fiddler,某日才发现mac上的Charles也有Windows版本,一查原来是mac/linux/Windows都支持,好定西啊,我是比较喜欢跨平台的东东的,以后切换开发环境的时候就比较平滑了,在此记录下使用心得操作;
首发于 简书

安装

直接上 官网 下载就好了,现在是v4.0.1,收费软件,找找破解方式,下个 charles.jar 替换下原有的就可以了;

基本结构

主要是会话的两种视图模式以及对应的request/response面板组成:
Structure视图
Sequence视图

Structure视图模式下,列表回按照域名来归类所有请求,而Sequence视图则是按照请求发生的顺序来展示;
可能是之前用Fiddler或者人眼阅读的顺序,习惯先左右后上下,但是Structure模式又不好找按序查找请求,对于不清楚api发生顺序的情况下不方便理顺逻辑,而sequence模式是上下模式,怎么看怎么浪费时间,这点差点让我放弃用它了…

常用的功能在图上已经有注释,不多说,感觉chales的右键功能比fiddler多一点;
Save response : 保存response数据到文件中,方便后面用于重定向功能 map local...;
Export : 可以将选中的多个会话信息完整导出成文件,方便不同开发人员进行调试或者现象复现分析,然后通过File - import 来导入;
repeat advanced…` : 可以对设置重发次数以及并发数,可以用于进行简单的服务器压测,看到有些简友还用它来对付一般的钓鱼网站,有点意思…

菜单

Proxy 菜单

这个用得比较多,在这里设置跟踪捕捉过滤功能:
Proxy menu

设置会话捕捉条件

record_setting
include 面板用于启用/停止可以捕捉/显示的会话;
exclude 表示不显示的会话,在会话列表中右键选择 ignore 时,对应的url会出现在这里;

record_setting_add
比较好用的是过滤条件支持通配符, * 表示任意多个字符, ? 表示一个字符,如 Protocol 中有 http ,https 和 “”,选择空白或者输入 * 都可以表示任意协议的请求;

设置允许连接的ip地址

access_control_settings

模拟网络环境

throtte_settings

在这里选择要模拟的网络环境,选项比Fidder多很多,也可以自定义,最人性的还可以对指定的url进行网络环境摸你, 好评…
这里设置完成后通过 Proxy - Start Throttling(Ctrl+T) 或者常用工具栏按钮来启用或停止;

设置为代理服务器,并捕获手机请求

proxy_settings
端口号 Port 默认 8888 ,跟Fiddler一样,省得切换软件的时候,手机还得重新设置wifi代理了;
记得启用 Enable transtarent HTTP proxying

手机上的设置跟Fiddler类似,切换到wifi设置页面,选择Proxy 选择 manual ,代理服务器设置为charles所在设备的ip,端口就是上面设定的 8888 , 注意: 手机和charles所在机器需处于同一个wifi网络中;

以上设定完成后,就可以charles中捕获手机请求了,第一次连接的时候charles会弹出确认提示框,选择 allow 就好了:
mobile_connect

Tools菜单

Tool_menu

rewrite动态修改request/response信息

map local 类似,也可以对response进行修改,不过他改变的只是部份信息,比如:主机地址( Host ),返回状态码( response status ),返回信息内容( body )等:
rewrite_rule

捕获https请求

1. 在本机上安装证书

help_ssl_proxying
这里可以直接选择 Install charles root certificate,会在本机上安装证书,也可以如图选择保存证书,然后手动导入到需要的位置,操作类似:
install_certificate.gif

2. 在手机上安装证书

单击 helpssl proxying - install charles root certificate on a mobile device or remote browser ,会弹出提示框,然后在手机浏览器上输入网址: chls.pro/ssl ,然后根据提示保存证书即可:
install_certificate_on_mobile

3. 启用https捕捉

ssl_proxy_settings
启用后就可以在会话视图列表中看到https请求了;

断点功能

可以在会话列表中右键点击某个会话,然后在菜单中选择 Breakpoints ,也可以在 Proxy - Breakpoint settings... 中手动新建/启用某个断点并且勾选 Proxy - enable breakpoints ,这样,当下次再有该请求时,会自动进入断点模式;

一个完整请求会进入断点模式2次,request的发出之前以及收到服务器的response但尚未返回给客户端的时候;

断点request的时候,可以求改reqeust信息,不过我们程序都有对请求头做校验和处理,修改参数后一般就直接报错了,所以这里看看response就好,反正操作类似:
breakpoints

edit response 中可以双击直接修改json文件的key/value值,很方便,修改完成后单击 execute 继续执行其他操作,将修改后的response返回给客户端;

response重定向功能

这个跟Fiddler的autoResponse功能类似,可以指定本地文件( map local... )也可以指定为其他服务器( map remote... )上的文件,我们介绍前一种;

断点可以用于临时修改数据,也是一种重定向功能,若是要长期重定向,咱还是将返回重定向到本机文件比较方便,具体方法:
* 准备一份要返回给客户端的response数据文件,可以从前面介绍的 save Response 来保存正常数据,然后修改后作为本地数据文件,也可以按照自己需要构造一份(用于服务端api尚未发布,但移动端又需要进行调试的时候);
* 选中某个会话,右键单击,从菜单最下方中选择 map local ... , 也可以单击 Tools - Map Local... 打开 map lcoal settings 来添加一个映射关系,两种操作是一样的,前者只不过直接把url信息给写好了:
map_local
* 完成设定后,后续符合条件的请求都会用本地映射文件替代;

小结: 我现在是Fiddler和charles配合使用,主要是Fiddler的https捕获我用的时候一直出问题,但是charles就很一切正常,除此之外,我用charles比较少,因为平常需要的基本功能两者都满足,但是:
1. charles的sequence是上下视图模式,我完全不习惯,感觉眼睛横向的时候基本都不需要动,很方便也舒服;
2. 在charles删除几百个会话信息的时候就可以感觉得到卡了那么一瞬间,而Fiddler就很顺畅;
3. charles的filter功能没fiddler强大;
4. fiddler提供脚本自定义功能,如果是C#开发者的话,还可以很方便的集成fiddler_core到自己的应用中;

扩展阅读: Fiddler的使用技巧

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Charles 是一款 HTTP 抓包工具,可以在 Windows 系统上使用使用 Charles 的步骤如下: 1. 下载并安装 Charles,请访问官方网站:https://www.charlesproxy.com/ 2. 启动 Charles,在主菜单中选择「Help」->「SSL Proxying」->「Install Charles Root Certificate」安装根证书。 3. 在浏览器中配置代理,代理地址为「localhost」,端口号为「8888」。 4. 在 Charles 中点击「Start」按钮启动抓包。 5. 正常使用网络应用程序,Charles 就会自动抓取和记录网络请求和响应数据。 更详细的使用教程可以参考 Charles 官方文档:https://www.charlesproxy.com/documentation/ 。 ### 回答2: Charles是一款用于Windows平台的网络调试工具,它可以帮助我们查看网络请求和响应,方便调试网站和应用程序。以下是Charles使用教程: 1. 下载安装并启动Charles。打开Charles主界面,我们可以看到左侧的工具栏、中间的请求列表、右侧的详细信息面板等。 2. 配置代理。为了让Charles能够捕获网络请求,我们需要将代理服务器设置为Charles。在Charles工具栏中选择Proxy -> Proxy Settings,打开代理设置窗口。在窗口中勾选Enable Transparent HTTP Proxying选项,并为SSL段设置一个默认端口,例如8888。点击OK保存。 3. 配置移动设备代理。如果我们需要在手机或平板上调试移动应用程序,需要将移动设备的代理设置为Charles。在移动设备上打开设置,找到Wi-Fi设置,选择当前连接的Wi-Fi网络,在代理服务器中输入我们电脑的IP地址,并设置端口为我们在Charles中设置的端口。 4. 捕获网络请求。配置完成后,Charles会开始捕获所有的网络请求和响应,显示在请求列表中。如果我们想过滤特定请求,可以在请求列表上方的过滤器中输入关键字进行过滤。 5. 查看请求详细信息。当我们选择一个请求时,在右侧的详细信息面板中会显示所选请求的详细信息,包括请求和响应的HTTP头、请求的概述、请求和响应的内容等。 6. 修改请求和响应。当我们需要修改请求或响应时,可以右键选择请求,在弹出菜单中选择Edit来修改请求内容。同样,我们也可以右键选择响应,选择Save Response As来保存响应内容。 7. 设置断点。当我们希望在特定请求中进行调试,可以设置断点来暂停请求。选中特定请求,在请求列表上方的工具栏中点击Set Breakpoint,即可设置断点。 总体来说,Charles是一款功能非常强大的网络调试工具,为我们的网站和应用程序调试提供了很大的帮助。希望上述使用教程能够帮助大家更好地使用Charles。 ### 回答3: 谷歌提供了名为Charles的网络调试代理工具,其主要功能是截获和显示客户端和服务器之间的HTTP和HTTPS通信。对于开发人员和测试人员而言,Charles是非常重要的工具之一,尤其是需要排除问题和诊断的时候,使用Charles可以帮助我们迅速地查找和定位问题。 首先,我们需要从官网上下载并安装Charles,官网下载链接为:https://www.charlesproxy.com/download/ 。安装完成后,打开Charles应用程序,可以看到主界面左侧为收集的代理日志,右侧则是展示清晰的网络数据流图。 接下来,我们需要将Charles设置为代理服务器,在Charles的Proxy菜单中,选择Proxy Settings,找到HTTP Proxy和SSL Proxy的端口号,并确保相应的端口开放。然后,在需要拦截代理的设备上或浏览器中,将代理设置为Charles的IP地址和端口。这样,当我们打开浏览器并在地址栏中输入URL时,Charles就会截获我们的请求,并显示在左侧的代理日志中。 在查看代理日志时,可以启用过滤器来过滤出我们所需的URL,并且可以将代理日志导出到文件中以便于分析和分享,导出选项可以在“File” -> “Export”中找到。 最后,需要注意的是,在完成调试和诊断工作后,我们还需要关闭代理或将代理重新设置为原先的状态,以免影响到其它的网络请求。 总而言之,使用Charles可以帮助我们快速解决各种网络问题,提高我们的工作效率和技能水平。因此,建议开发人员和测试人员积极学习掌握Charles使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值