Charles 重写(rewrite)

Rewrite功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
可以重写接口所有元素的内容:headerhosturlpathquery paramresponse statusbody.
具体操作如下:
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

 

posted on 2020-09-02 13:50  batteys  阅读(1285)  评论(0编辑  收藏  举报