Rewrite
功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
可以重写接口所有元素的内容:header
、host
、url
、path
、query param
、response status
、body
.
具体操作如下:
1.点击Charles菜单栏Tools
中的Rewrite
,

2.弹出Rewrite Settings
框,勾选左上角的Enable Rewrite
选项,并点击Add
,左侧边框出现Untitled Set
,在右侧的Name
栏可以对此次的Rewrite
进行重命名。

在右侧Location
栏点击Add
,在弹出的Edit Location
对话框中,填入相关参数,最后点击OK

接着,在右侧Rules
栏点击Add
,在弹出的Rewrite Rule
对话框中,填入相关参数,最后点击OK

一、修改接口返回报文参数
作用:对请求的响应内容做修改,一般是对某一个或几个值进行rewrite
,用新的值来替代返回的值
使用场景:可以用来mock
数据,比方说在开发中为了测试功能需要请求的某个数组字段有值,但是当前环境无法给出,那么就可以使用该功能

会将返回数据中的2018-08-05
全部替换成2018-08-03
二、修改请求的header
作用:可以对请求或者响应的header
内容进行操作,包括添加、修改及删除。
使用场景:在需要对header
进行处理时用到,例如为了用上某个环境数据,可能需要对应userid
,这时本地开发是可以在请求的header
中加上userid
信息;也可以重写响应header
的信息

会在请求的
header
中添加userid
属性。注:Match栏的name和value值如果不填会匹配所有的请求,如果有值,则去匹配有改键值的请求。
三、修改path
主要rewrite path
内容使用指定rewrite
规则的path
来响应指定的请求path
,它可以对path
进行裁剪

请求的结果如下:

四、其他
host
: 主要是对请求进行host
修改,以达到本地请求获取指定host
环境中的数据,常见于mock
数据
url
: 作用:修改url
中某些部分,可以用别的url
进行替换或者url
裁剪时间戳或者md5
等
使用场景:场景使用非常多,既可以对host
也可以对path
进行rewrite
,可以满足指定host
下的请求重定向到其他host下对应path
下
query param
:作用:可以对param
进行操作,包括修改、添加、删除等
使用场景:有时请求可能多传递了不必要的参数,这时可以rewirte
功能去掉多余的参数;另外也可以添加请求必须而暂时无法提供的参数
response status
: 很少用到,顾名思义就是对response
的状态码进行rewrite