【Charles的重定向】

news/2025/3/31 8:12:54/

重定向接口请求

注意:不用的时候记得关掉!

在测试和开发过程中,有时候需要修改接口的返回状态,或是返回值。在Charles中可以通过远程映射,将B接口的响应返回给A接口,从而达到修改接口响应的目的。这个功能还能在正式环境域名和测试环境域名切换上使用。

一、远程映射

Charles在捕获到客户端的接口请求后,根据在charles上配置的映射,更改接口请求地址,获得响应后,再返回给原接口请求。

打开远程映射设置后,勾选“Enable MapRemote”,点击“Add”,新增接口映射

(1)、新增接口映射

1.单个接口

  • 选择目标接口,右击,找到“Map Remote”

2.批量添加

  • 或者是在“Tool”菜单下,找到“Map Remote”

  • 打开远程映射设置后,勾选“Enable MapRemote”,点击“Add”,新增接口映射

(2)、设置匹配映射的接口

  • 打开接口映射弹框后可以看到,上半部分是匹配映射的接口URL信息。

  • Charles会根据协议、主机、端口、路径、查询参数,用以匹配特定URL。

  • 这些设置支持通配符,例如:配置查询参数为“*”,则会匹配该路径下所有的查询参数。

(3)、指定映射的目标地址

  • 与配置需要匹配的接口一样,下半部分设置映射的目标接口

  • 同样可设置协议、主机、端口、路径、查询参数,

  • 这些设置支持通配符。

  • 弹框最下方的勾选框为,保留请求头中的原host(Preserve host in header fields),可根据需要设置。

(4)、示例步骤

  • 以Charles官网的接口为例:通过远程映射,将其他网页返回给官网地址

  • 配置远程映射

  • 配置完成后,刷新页面。可以在Charles中看到请求了新的地址,在overview标签页下也标明了这个接口是由原接口远程映射而请求的。

  • 查看页面可以看到,现在请求官网的地址,返回的是其他网站

实践:

注意:不用的时候记得关掉!

  • 有的时候遇到数据与实际预期不符的情况,查了半天结果是接口映射忘记关了 [苦笑]

  • 在“Tool”菜单下,找到“Map Remote”

  • 取消勾选“Enable Map Remote”,并保存即可。

二、本地映射

本地映射,就是Charles在捕获到客户端的接口请求后,将本地文件的内容返回给客户端,就像正常的服务端响应一样。 

客户端在正式发布上线之前,需要对功能进行验证,但是直接修改正式线的数据又可能存在误改的隐患,这时候通过映射想要的数据,就能够快速的完成功能的验证。

(1)、 新增接口映射

1.单个接口

  • 选择目标接口,右击,找到“Map local”

2.批量添加

  • 或者是在“Tool”菜单下,找到“Map local”

  • 打开本地映射设置后,勾选“Enable Map Local”,点击“Add”,新增接口映射

(2)、设置匹配映射的接口

  • 打开接口映射弹框后可以看到,上半部分是匹配映射的接口URL信息。

  • Charles会根据协议、主机、端口、路径、查询参数,用以匹配特定URL。

  • 这些设置支持通配符,例如:配置查询参数为“*”,则会匹配该路径下所有的查询参数。

(3)、本地文件设置

  • 设置完匹配映射的接口,接下来设置映射的本地文件

  • 可以本地新建一个文件,作为接口响应返回。

  • 也可以直接将待映射的接口的响应保存下来,并设置为本地映射文件。
    (注意,这样直接保存的文件是没有文件后缀的。保存下来之后最后按照原接口响应的数据类型,修改文件后缀。)

  • 设置为本地映射文件
     


    (注意:如果在本地找不到所请求的文件,则该请求将正常返回服务端接口数据。)

(4)、示例步骤

  • 以Charles官网的接口为例:通过本地映射,来修改下图中的红框内的文案

  • 首先,先将接口返回结果保存下来。
    (注意:直接保存)

  • 打开文件,找到要修改的文案

  • 修改文案内容

  • 设置本地映射。
    (注意,因为原接口响应为html格式,所以这里将本地文件的后缀改为.html)

  • 设置完成后,再次请求网站接口。可以在接口响应的header里看到,接口响应已经映射到对应的本地文件。

  • 查看网站,也可以看到刚刚的文案已经被修改了。


http://www.ppmy.cn/news/1583734.html

相关文章

在 Linux(Ubuntu / CentOS 7)上快速搭建我的世界 MineCraft 服务器,并实现远程联机,详细教程

Linux 部署 MineCraft 服务器 详细教程(丐版,无需云服务器) 一、虚拟机 Ubuntu 部署二、下载 Minecraft 服务端三、安装 JRE 21四、安装 MCS manager 面板五、搭建服务器六、本地测试连接七、下载樱花,实现内网穿透,邀…

Scheme语言的网络安全

Scheme语言在网络安全中的应用 引言 在当今信息技术迅速发展的时代,网络安全成为了各个组织和个人关注的焦点。随着互联网的普及,网络攻击、数据泄露和信息安全事件层出不穷,如何有效保障网络安全,成为了亟待解决的问题。语言的…

Axure RP设计软件中的各种函数:包括数字、数学、字符串、时间及中继器函数,详细解释了各函数的用途、参数及其应用场景。

文章目录 引言函数分类数字函数数学函数字符串函数时间函数函数中继器函数引言 在axure交互设计时,函数可以用在条件公式和需要赋值的地方,其基本语法是用双方括号包含,变量值和函数用英文句号连接。 在交互事件编辑器中通过fx按钮插入函数表达式,例如设置文本内容为: …

蓝桥杯C++基础算法-多重背包

这段代码实现了一个多重背包问题的动态规划解法。多重背包问题与完全背包问题类似,但每个物品有其数量限制。以下是代码的详细思路解析: 1. 问题背景 给定 n 个物品,每个物品有其体积 v[i]、价值 w[i] 和数量 s[i],以及一个容量为…

effective Java 学习笔记(第二弹)

effective Java 学习笔记(第一弹) 整理自《effective Java 中文第3版》 本篇笔记整理第3,4章的内容。 重写equals方法需要注意的地方 自反性:对于任何非空引用 x,x.equals(x) 必须返回 true。对称性:对于…

Qt信号与槽高级特性与项目实战:原理剖析与工程化应用指南

文章目录 五、信号与槽的高级特性1. 信号与信号的连接(1) 实现信号的转发(2) 信号与信号连接的应用场景 2. 带参数的信号与槽(1) 带参数的信号声明与使用(2) 参数类型的匹配问题 3. 信号与槽的断开连接(1) 为什么需要断开连接(2) 如何使用 QObject::disconnect() 小结 六、信号…

cmd命令查看电脑的CPU、内存、存储量

目录 获取计算机硬件的相关信息的命令分别的功能结果展示结果说明获取计算机硬件的相关信息的命令 wmic cpu get name wmic memorychip get capacity wmic diskdrive get model,size,mediaType分别的功能 获取计算机中央处理器(CPU)的名称 获取计算机内存(RAM)芯片的容量…

贪心算法(12))(java)坏了的计算器

题目:在显示着数字 startValue的坏计算器上,我们可以执行以下两种操作: 双倍(Double):将显示屏上的数字乘2; 递减(Decrement):将显示屏上的数字减1. 给定两个整数 startValue 和 target。返回显示数字target所需的最小操作数。 示例1: 输…