一、背景
这是一款比Map Local/Remote 还强大的工具,更加灵活,体现在以下几点:
- 重写request报文
- 重写response报文
- header 字段的增删改
- query param 字段的增删改
- 重写 body 字段
- 改写http 响应状态status
- 重写host/url/path
从这也可以看出其强大得不是一点点,下面演示每种重写的具体操作。
二、实现类似的Map Remote
新增重写规则,规则名称是任意的。
包括两部分:匹配规则和重写规则。
1、匹配规则
新增 rewrite 规则,要求Host / Port / Path 三者都匹配。
2、重写规则
Type类型选择Host, 改写请求Host地址。
三、重写header 字段
支持对http header字段进行增删改。
-
增加header字段
-
修改header字段
http header "x-gray"的值原本是true,被重写为 modified
- 删除http header字段
删除http header字段 x-gray,因为是删除操作,所以无需输入其value, 更没有Replace之说了。
四、重写response报文
http response 响应报文中的msg原本是successful,被重写为期望的报文“charles rewrite response”。
五、改写Response Status
-
把状态码200修改为302
-
404错误
六、Query Param的增删改
限于篇幅,就不像http header字段的增删改那样逐一举例了。
这里举例Query Param的增加字段。
七、总结
因为重写的规则比较细,如何使用要视具体情况,可以替换上一篇文的Map Local/Remote。
也正因为如此,使用起来相对复杂。
最后说一句,重写规则是可以同时维护多个规则的,不仅限为一个规则。
所以说,Rewrite工具是Map Local 和 Map Remote两者的综合体。