Charles的Rewrite功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Charles的Rewrite功能相关的知识,希望对你有一定的参考价值。

参考技术A 目录

Map、Rewrite、Breakpoints的区别

如何使用Rewrite修改网络请求

        1.修改Header

        2.修改Body

            修改requests的Body

            修改response的Body

        3.修改query param

        4.修改url

正文

一、Map、Rewrite、Breakpoints的区别

Charles提供了Map功能、Rewrite功能、Breakpoints功能,都可以达到修改服务器返回内容的目的,这三者的差异是:

Map功能适合长期的将某些请求重定向到另一个网络地址或本地文件

      Map Local功能:将请求的返回重定向到本地文件中

      Map Remote功能:将请求的域名重定向到一个网络地址

Breakpoints功能适合做临时性的修改,request和response都支持修改

Rewrite功能适合对网络请求进行一些正则替换

二、如何使用Rewrite修改网络请求

1.修改Header

例如修改cookie

1)打开Rewrite

2)添加请求

3)添加修改的类型

完成后,抓包查看之后API的变化,如下图所示

2.修改Body

修改requests的Body

当你要修改的请求内容是json数据时,就选择修改Body

配置方法如下图,将json数据直接粘贴过来修改

修改response的Body,下图是需要匹配的内容

所需要替换的内容中有空格,直接在charles中敲入空格的话,匹配不到,需要用到正则表达式才可匹配,/s表示空白字符(空格、换行、tab缩进等),*代表0个或多个

3.修改query param

如何查看你要修改的是否是query param?下图中,你要修改数据在query string中的时候,就要修改query param

4.修改url

附录:

正则可视化工具 https://regexper.com/

Charles抓包中如何使用Rewrite

技术图片

 

 问题:如何将截图中的4修改成任意值。

 

一、Rewrite功能

1、首选确定要修改的接口,右键选中点击“Copy URL”

2、点击菜单的 Tools→Rewrite Setting,如下图

技术图片

 

3、在弹出的 Rewrite Setting,设置各项值,如图A。

技术图片

4、填写请求,如下                                                                                                                图  A

在图A中,点击右侧上面一个Add按钮,在弹出的窗口中,在host文本框中,粘贴上第一步我们复制的URL,然后鼠标焦点定位到Path,会自动将URL中的内容分解到各个文本框中。

技术图片

5、填写替换值,如下

技术图片

技术图片

6、都填写完毕后,可以看到填写好的界面,如下图:

技术图片

 

以上是关于Charles的Rewrite功能的主要内容,如果未能解决你的问题,请参考以下文章

测试Charles的map,rewrite,breakpoints的使用方法

Charles——charles 工具栏Tools总结—— 重写工具/rewrite Srttings

charles如何修改请求参数-rewrite

charles 修改返回值

Charles Proxy Rewrite & MapLocal - 如何匹配精确查询

charles-Mock实践(数据修改)