《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(9)-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.修改请求内容
3.1方法一:直接选中修改
有些时候为了调试服务器的接口稳定性和容错性,我们需要反复尝试不同参数的网络请求。Charles 可以方便地提供网络请求的修改和重发功能。具体操作步骤如下:
1.只需要在以往的网络请求上点击右键,选择 “Compose”,即可创建一个可编辑的网络请求。这里宏哥还是利用上一篇中的接口进行演示。如下图所示:
2.我们可以修改该请求的任何信息,包括 URL 地址、端口、参数等,之后点击 “Execute” 即可发送该修改后的网络请求(如下图所示)。Charles 支持我们多次修改和发送该请求,这对于我们和服务器端调试接口非常方便,如下图所示:
3.将1801修改成1802,发送预期结果返回李四实际结果一样,如下图所示:
3.2Rewrite(重写)
Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。
1.例如,还是用之前API 请求是获得用户账户信息,而我当前的账户是 “张三”,如下图所示:
2.我们想试着直接修改请求参数,将 1801 换成成 1802。于是我们启用 Rewrite 功能,点击菜单栏tools-->Rewrite,如下图所示:
3.勾选“Enable Rewrite”,点击“Add”,然后设置如下的规则,如下图所示:
4.浏览器访问或者其他接口工具重新发送请求,预期结果返回李四与实际结果一样,如下图所示:
3.3Breakpoint(打断点)
上面提供的 Rewrite 功能最适合做批量和长期的替换,但是很多时候,我们只是想临时修改一次网络请求结果,这个时候,使用 Rewrite 功能虽然也可以达到目的,但是过于麻烦,对于临时性的修改,我们最好使用 Breakpoints 功能。
Breakpoints 功能类似我们在 Xcode 中设置的断点一样,当指定的网络请求发生时,Charles 会截获该请求,这个时候,我们可以在 Charles 中临时修改网络请求的内容。
打断点修改请求的方法已经在上一篇文章中进行了详细的介绍,这里宏哥就不做赘述了。
需要注意的是,使用 Breakpoints 功能将网络请求截获并修改过程中,整个网络请求的计时并不会暂停,所以长时间的暂停可能导致客户端的请求超时。嘿嘿!这个就要考验你的手速了。
4.小结
宏哥这里总共介绍了三种设置修改请求参数的方式,一般工作中,我们要根据需要灵活变换方法,而不是一成不变的。好了,今天时间也不早了,讲解和分享就到这里!感谢您耐心的阅读~~
感谢您花时间阅读此篇文章,如果您觉得这篇文章你学到了东西也是为了犒劳下博主的码字不易不妨打赏一下吧,让博主能喝上一杯咖啡,在此谢过了!
如果您觉得阅读本文对您有帮助,请点一下左下角“推荐”按钮,您的
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/du-hong 欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利!
公众号(关注宏哥)                                                                                 客服微信