抓包工具 Charles使用教程---抓取接口数据

1、抓包工具 Charles下载地址:https://xclient.info/s/charles.html#versions

2、使用教程:https://www.jianshu.com/p/fc2f0afa8b56

3、参考文献:

Charles使用教程及Https乱码解决:https://www.jianshu.com/p/bddaf8fcfce8

Charles手机安装证书https://malcolmyu.github.io/2017/02/26/Dive-into-Charles-HTTPS-Proxying/

Charles官网https://www.charlesproxy.com/

转载:https://www.jianshu.com/p/fc2f0afa8b56

使用教程:

Charles是在 Mac 下常用的网络封包截取工具,在做移动开发时,我们为了调试与服务器端的网络通讯协议,常常需要截取网络封包来分析。

一、先下载安装Charles

 工具栏介绍:

二、网页抓包

启动 Charles 后,需要将 Charles 设置成系统代理,选择菜单中的 “Proxy” –> “macOS Proxy” 来将 Charles 设置成系统代理。如下所示:

这样你会发现,你通过浏览器请求的网址都会出现在这里。点击某一个网址后,你会发现右边会出现这个网址请求的大概信息,点击具体的请求后会出现request和response等信息。如下图: 

如果是https请求出现的是乱码,这时候你就需要安装Charles的CA证书了,首先到去http://www.charlesproxy.com/ssl.zip下载CA证书文件。双击crt文件,选择总是信任就可以了。

三、手机抓包

Charles 上的设置:

要截取 iPhone 上的网络请求,我们首先需要将 Charles 的代理功能打开。在 Charles 的菜单栏上选择 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的设置。如下图所示:

iPhone 上的设置:

首先我们需要获取 Charles 运行所在电脑的 IP 地址,Charles 的顶部菜单的 “Help”–>“Local IP Address”,即可在弹出的对话框中看到 IP 地址,如下图所示:

 

在 iPhone 的 “ 设置 ”–>“ 无线局域网 ” 中,可以看到当前连接的 wifi 名,通过点击右边的详情键,可以看到当前连接上的 wifi 的详细信息,包括 IP 地址,子网掩码等信息。在其最底部有「HTTP 代理」一项,我们将其切换成手动,然后填上 Charles 运行所在的电脑的 IP,以及端口号 8888,如下图所示:


 

设置好之后,我们打开 iPhone 上的任意需要网络通讯的程序,就可以看到 Charles 弹出 iPhone 请求连接的确认菜单,点击 “Allow” 即可。

当然如果要抓取iPhone设备上的HTTPS请求,需要在iPhone上也安装一个证书,在手机浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。

四、过滤

在 Charles 的菜单栏选择 Proxy->Recording Settings,然后选择 Include 栏,选择Add,然后填入需要监控的协议,主机地址,端口号,这样就达到了过滤的目的。如下图:


还有一种方法就是在一个网址上右击,选择Focus,然后其他的请求就会被放到Other Hosts的文件夹里面,这样也达到了过滤的目的。

 

 

五、模拟慢速网络

有时候在测试的时候我们想要模拟一下网络慢的情况,这时候Charles他是可以帮助到你的,在Proxy->Throttle Setting,然后选择Enable Throttling,在Throttle Preset下选择网络类型即可,具体设置你可以自行拿捏。


如果我们只想模拟指定网站的慢速网络,可以再勾选上图中的 “Only for selected hosts” 项,然后在对话框的下半部分设置中增加指定的 hosts 项即可。

六、修改网络请求

有些时候为了调试服务器的接口,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。只需要选中以往的网络请求,工具栏中点击 “Edit”,即可创建一个可编辑的网络请求。如下所示:


 

七、给服务器做压力测试

我们可以使用 Charles 的 Repeat 功能来简单地测试服务器的并发处理能力,方法如下:

我们在想打压的网络请求上(POST 或 GET 请求均可)右击,然后选择 「Repeat Advanced」菜单项,如下所示:


 

接着我们就可以在弹出的对话框中,选择打压的并发线程数以及打压次数,确定之后,即可开始打压。

八、断点

在Charles发起一个请求的时候,我们是可以给某个请求打一个断点的,然后来观察或者修改请求或者返回的内容,但是在这过程中要注意请求的超时时间。

要针对某一个请求设置断点,只需要在这个请求网址右击选择Breakpoints,然后点击断点按钮,就可以断点某一个请求了。


 

 

 

 

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于无法到的接口,可能存在以下几种情况: 1. TLS/SSL 加密:如果接口使用了 HTTPS 协议进行加密传输,您可能无法直接抓取接口数据。在这种情况下,您可以尝试使用代理工具,如 Fiddler、Charles、Wireshark 等,通过设置代理来解密 HTTPS 流量,从而抓取接口数据。 2. 动态接口:有些接口可能是通过 JavaScript 动态生成的,这意味着接口的 URL 或者参数是在页面加载过程中通过 JavaScript 代码生成的。在这种情况下,传统的抓包工具可能无法直接捕获到接口请求,您可以尝试使用浏览器开发者工具(如 Chrome 开发者工具)来查看网络请求,或者通过分析页面的 JavaScript 代码来找到接口请求的相关信息。 3. 接口访问限制:有些接口可能会对请求进行认证、限制访问频率或者进行其他安全措施。如果您无法抓取到这些接口,可能是因为您的请求未能通过验证或者被拦截了。您可以尝试模拟合法的请求头、认证信息等,或者查看接口文档或联系接口提供方了解更多关于访问限制的信息。 4. 动态 IP:某些网站或接口可能会根据 IP 地址进行访问限制,如果您的 IP 地址被屏蔽或者限制,可能无法正常抓取接口数据。您可以尝试使用代理服务器来变更 IP 地址,或者联系接口提供方了解是否有相关的访问限制。 希望以上信息对您有所帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值