Charles 使用(app http抓包,request拦截,response拦截)

本文详细介绍了Charles抓包工具的特点及使用方法,包括配置代理、数据包展示、请求过滤等功能,并对比了与其他抓包工具的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、Charles 概述

关于抓包工具:先后琢磨过 wireshark,fiddler,burp suite,charles 。
不得不说在http request拦截与responce数据模拟上charles真的是比较简洁好用。

  • 界面也是简洁大方
  • 拦截篡改请求方便
  • 模拟responce更方便(太赞)

破解版本下载:

2、配置

  • Charles 端配置: Proxy -> Proxy Setting -> 常见的设置8888或者8080
    这里写图片描述

  • 手机端就是普通的连接代理配置:wifi -> 代理 -> 手动 -> 填写主机名(上图ip),端口号(上图端口号)

  • 然后手机发起请求,要选择同意(allow) (如果没有弹出此界面,一般无法抓包,请确认防火墙关闭,并重启charles)
    这里写图片描述

3、charles 数据包展示

比较简洁的tab 左边有域名归类:
这里写图片描述

右边是单个请求:
这里写图片描述

4、请求过滤

太多的请求总是凌乱:
Proxy -> Recording Settings 以手机酷狗为例子。
这里写图片描述

5、请求与响应拦截类比

6、charles http 拦截(Breakpoints)

在Sequence 这拦,选择要拦截的接口,右击 -> Breakpoints 以后的请求和响应分别拦截一次跳到改数据内容页面。
按钮说明:

  • cancel 跳过不改
  • abort 丢弃
  • excute 执行(修改后点击)

6、save

在Sequence 这拦,选择要拦截的接口,右击 ->
- save Request 请求内容保存
- save Responce 响应内容保存

7、map (非常好用的功能,mock 效果)

在Sequence 这拦,选择要拦截的接口,右击 ->
- map remote 该请求结果使用另一个请求的结果
- map local 该请求的结果使用本地文件
这是一个非常好用的功能,有mock 模拟数据的用处。比如说服务端不方便给各种数据,可以在这里客户端自己构造数据测效果。

8、FAQ

8.1、 中文乱码

edit -> preferences -> 选择一个中文字体就可以了

这里写图片描述

<think>首先,用户的问题是:"我想解决Charles抓包时返回值出现乱码的问题 请问charles 抓包返回值乱码 解决方法"。这直接与系统级指令中引用的内容相关,特别是引用[2]和引用[3],因为它们讨论了Charles抓包乱码问题。 系统级指令要求: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 用户可见层要求: - 回答结构清晰,帮助用户逐步解决问题。 - 保证回答真实可靠。 从引用中: - 引用[1]:描述了Charles是什么,但用户的问题是关于乱码的。 - 引用[2]:详细解释了如何解决Charles抓包显示乱码问题,包括步骤:启用SSL代理,添加位置,设置Host和Port(如443端口)。 - 引用[3]:提到了Java安装问题,可能导致Charles启动问题,但不是直接关于返回值乱码。 用户的问题聚焦在"返回值乱码",即Response部分的乱码。引用[2]明确指出,当抓HTTPS请求时,RequestResponse显示乱码,并提供了解决方案:配置SSL代理设置。 所以,我的回答应该基于引用[2]的内容,因为它直接解决了乱码问题。 步骤总结(来自引用[2]): 1. 打开Charles。 2. 点击Proxy -> SSL Proxying Settings。 3. 在SSL Proxying标签下,勾选Enable SSL Proxying。 4. 添加Location:Host设置为需要抓包的域名(或使用*来匹配所有),Port设置为443(或其他端口)。 5. 重新抓包。 此外,引用[3]提到Java问题,但用户的问题是返回值乱码,不是Charles启动问题,所以可能不需要强调这个,除非用户有相关错误。 回答结构: - 清晰逐步地解释解决方法。 - 使用中文。 - 在引用内容后添加标识。 - 最后生成相关问题。 生成相关问题:基于主题,生成几个相关问题,如优化、常见错误等。 数学表达式:用户的问题是关于Charles抓包的,不涉及数学公式,所以可能不需要添加数学表达式。除非在上下文中提到,但这里没有。所以,我可以忽略这个部分,除非必要。 确保回答真实可靠:基于提供的引用内容,特别是引用[2],它是可靠的。 最终回答大纲: 1. 介绍问题:简述Charles抓包返回值乱码的原因(通常是HTTPS加密导致的)。 2. 逐步解决方法:详细步骤如何配置SSL代理。 3. 引用标识:在描述步骤后添加[^2],因为来自引用[2]。 4. 生成相关问题。 相关问题建议: 1. 如何防止Charles抓包时的证书错误? 2. Charles抓包的其他常见问题及解决方法? 3. 如何优化Charles抓包性能?</think>### Charles 抓包返回值乱码解决方法 Charles 是一款强大的 HTTP/HTTPS 抓包工具,但在抓取 HTTPS 请求时,返回值(Response)常因 SSL/TLS 加密而显示为乱码。这通常是由于未正确配置 SSL 代理导致的。以下是详细解决步骤,操作简单且可靠: #### 解决步骤(以 Windows/macOS 为例) 1. **打开 Charles** 启动 Charles 应用程序,确保已连接到代理(菜单栏显示 "Proxy" 选项)。 2. **启用 SSL 代理** - 点击顶部菜单栏的 **Proxy** → 选择 **SSL Proxying Settings**。 - 在弹出的窗口中,勾选 **Enable SSL Proxying**(启用 SSL 代理)。 - 点击 **Add** 按钮添加需要抓包的域名或端口规则。 - **Host**:输入目标域名(如 `*.example.com`),或使用 `*` 匹配所有域名。 - **Port**:设置为 `443`(HTTPS 默认端口),或指定其他端口(如 API 服务的 `8443`)。 - 示例配置:`Host: *` + `Port: 443` 可覆盖大多数场景[^2]。 3. **重新抓包** - 关闭设置窗口,重启 Charles 或刷新目标网页/App。 - 重新发起请求,此时 Response 应显示为可读文本(如 JSON、HTML 而非乱码)。 4. **验证证书(可选)** - 如果仍出现乱码,检查设备是否安装了 Charles 的根证书(方法:**Help** → **SSL Proxying** → **Install Charles Root Certificate**)。 - 在浏览器或系统信任存储中启用该证书。 #### 原因说明 HTTPS 数据默认加密传输,Charles 需通过 SSL 代理"中间人"方式解密数据。未配置代理时,Response 会显示为加密乱码;正确配置后,Charles 能解密并显示明文内容[^2]。 若遇到 Java 环境错误(如启动失败),请卸载并重装 Charles,确保 Java 环境正常[^3]。 #### 注意事项 - **域名过滤**:若只关注特定域名,在 **Host** 字段精确填写,避免无关数据干扰。 - **端口适用性**:非 443 端口的 HTTPS 服务(如 `8080`),需在 **Port** 中指定对应端口。 - **移动设备抓包**:确保手机与 Charles 在同一网络,并在设备 Wi-Fi 设置中配置代理为 Charles 的 IP 和端口(默认 `8888`)。 通过以上步骤,乱码问题通常可立即解决。若仍有异常,请检查防火墙或安全软件是否拦截Charles 的代理连接。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值