《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇
Posted dreamw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇相关的知识,希望对你有一定的参考价值。
1.简介
2.修改请求参数或者响应数据的方法
Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。只能修改返回数据。
Rewrite 功能适合对网络请求进行一些正则替换。可修改请求数据和响应数据。
Breakpoints 功能适合做一些临时性的修改。在响应时间内,可修改请求数据和响应数据。
2.1MAP(映射)
Charles 的map功能,就是将某个请求进行重定向,然后用重定向后的内容来修改请求内容;map又分Map Remote和Map Local,顾名思义:Map Remote 是将指定的网络请求重定向到另一个网址,Map Local 是将指定的网络请求重定向到本地文件。
2.2Rewrite(重写)
Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
2.3Breakpoint(打断点)
上面提供的 Rewrite 功能最适合做批量和长期的替换,但是很多时候,我们只是想临时修改一次网络请求结果,这个时候,使用 Rewrite 功能虽然也可以达到目的,但是过于麻烦,对于临时性的修改,我们最好使用 Breakpoints 功能。
Breakpoints 功能类似我们在 Xcode 中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求,这个时候,我们可以在 Charles 中临时修改网络请求的返回内容。
3.修改响应内容
有些时候我们想让服务器返回一些指定的内容,方便我们调试一些特殊情况。例如列表页面为空的情况,数据异常的情况,部分耗时的网络请求超时的情况等。如果没有Charles,要服务器配合构造相应的数据显得会比较麻烦。这个时候,使用 Charles 相关的功能就可以满足我们的需求。
3.1Map Local
Map Local的使用场景,要验证接口返回数据的各种场景,使用本地映射可以修改请求接口的response。对于 Map Local 功能,我们需要填写的重定向的源地址和本地的目标文件。对于有一些复杂的网络请求结果,我们可以先使用 Charles 提供的 “Save Response…” 功能,将请求结果保存到本地(如下图所示),然后稍加修改,成为我们的目标映射文件。具体操作步骤如下:
1.保存接口响应:右键-->save response-->保存到本地路径(最好为json格式)备用,这里还是用自己写的API。如下图所示:
2.在 Charles 的菜单中,选择 “Tools”–> “Map Local” 即可进入到相应功能的设置页面。如下图所示:
这种操作稍微有点复杂。或者你可以点击接口-->右键-->Map Local进入Map Edit页面,如下图所示:
3.在Map Local设置页面,勾选“Enable Map Local”,点击“Add”,然后进行配置,配置Map Local path 选择你保存到本地已修改的json文件(我把张三修改成了北京-宏哥)。如下图所示:
4.浏览器访问或者其他接口工具重新发送请求,预期结果返回北京-宏哥与实际结果一样,如下图所示:
3.2Map Remote
Map Remote的使用场景,要验证接口返回数据的各种场景,使用本地映射可以修改请求接口的response。对于 Map Remote 功能,我们需要分别填写网络重定向的源地址和目的地址,对于不需要限制的条件,可以留空。具体操作步骤如下:
1.在 Charles 的菜单中,选择 “Tools”–> “Map Remote” 即可进入到相应功能的设置页面。如下图所示:
这种操作稍微有点复杂。或者你可以点击接口-->右键-->Map Remote进入Map Edit页面,如下图所示:
2.在Map Remote设置页面,勾选“Enable Map Remote”,点击“Add”,然后进行配置,配置Map From(接口地址:http://10.11.53.193:5566/users/1801)和Map To(映射地址:http://10.11.53.193:5566/users/1803),宏哥将其映射到百度 。如下图所示:
3.发送预期结果返回王五实际结果一样,如下图所示:
3.3Rewrite(重写)
Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
1.例如,还是用之前API 请求是获得用户账户信息,而我当前的账户是 “张三”返回账户信息是成功:success,如下图所示:
2.我们想试着直接修改网络返回值,将 success 换成 fail。于是我们启用 Rewrite 功能,然后设置如下的规则:
3.勾选“Enable Rewrite”,点击“Add”,然后设置规则,如下图所示:
4.浏览器访问或者其他接口工具重新发送请求,预期结果返回fail与实际结果一样,如下图所示:
3.4Breakpoint(打断点)
上面提供的 Rewrite 功能最适合做批量和长期的替换,但是很多时候,我们只是想临时修改一次网络响应结果,这个时候,使用 Rewrite 功能虽然也可以达到目的,但是过于麻烦,对于临时性的修改,我们最好使用 Breakpoints 功能。
Breakpoints 功能类似我们在 Xcode 中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求返回数据,这个时候,我们可以在 Charles 中临时修改网络请求的返回数据。
打断点修改返回数据的方法已经在上一篇文章中进行了详细的介绍,这里宏哥就不做赘述了。
4.小结
宏哥这里总共介绍了四种设置修改响应内容的方式,一般工作中,我们要根据需要灵活变换方法,而不是一成不变的。好了,今天时间也不早了,讲解和分享就到这里!感谢您耐心的阅读~~
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
以上是关于《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇的主要内容,如果未能解决你的问题,请参考以下文章
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(15)-Charles如何配置反向代理
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(13)-Charles如何进行Mock和接口测试
玩转Rabbitmq系列02:Rabbitmq保姆级安装教程与基本消息模型实战