重定向接口请求
注意:不用的时候记得关掉!
在测试和开发过程中,有时候需要修改接口的返回状态,或是返回值。在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里看到,接口响应已经映射到对应的本地文件。
-
查看网站,也可以看到刚刚的文案已经被修改了。