《爆肝整理》保姆级系列教程-玩转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.小结
宏哥这里总共介绍了三种设置修改请求参数的方式,一般工作中,我们要根据需要灵活变换方法,而不是一成不变的。好了,今天时间也不早了,讲解和分享就到这里!感谢您耐心的阅读~~
《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(9)-Charles如何修改请求参数和响应数据-上篇的更多相关文章
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(3)-再识Charles
1.简介 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Charles已经有了一个理性地认识,今天宏哥在从Charles的外貌介绍和分享一下,让小伙伴们或者童鞋们再对Charles有一个感性的认识,今 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话
1.简介 前边几篇宏哥介绍了Charles界面内容以及作用.今天宏哥就讲解和分享如何设置Charles后,我们就可以愉快地捕获会话,进行抓包了.因为上一篇许多小伙伴看到宏哥的Charles可以分开看到 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(5)-Charles如何设置捕获Https会话
1.简介 在大数据时代,互联网时代,个人信息安全尤为重要,网络安全在近日多起电信诈骗事情发酵下的情况下,引起国家,企业,个人对于互联网安全进一步的重视.而之前很多以http协议传输的网站出现的网站信息 ...
- 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘
1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Charles也能截获 Android 和 Wind ...
- 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下
1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识.其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler. 1. ...
- 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行
1.简介 Fiddler成了网页调试必备的工具,抓包看数据.Fiddler自带命令行控制,并提供以下用法.Fiddler的快捷命令框让你快速的输入脚本命令. 除了输入默认命令,也可以自定义命令,你可以 ...
- Fiddler系列教程2:手机抓包图文教程
上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...
- Charles 抓包使用教程
将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https 通讯信息 模拟慢速网络 修改网络请求内容 给服务器做压力测试 修改服务 ...
- 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解
1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的会话面板了. 2.会话列表 (Session list) 概览 Fiddler抓取到的每条http请求(每一条称为一个ses ...
- 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解
1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了.监控面板主要是一些辅助标签工具栏.有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言.监控面板是fiddl ...
随机推荐
- 前端开发:4、JavaScript简介、变量与常量、数据类型及内置方法、运算符、流程控制、循环结构、内置方法
前端开发之JavaScript 目录 前端开发之JavaScript 一.JavaScript简介 二.JS基础 三.变量与常量 四.基本数据类型 1.数值类型 2.字符类型 3.布尔类型 五.特殊数 ...
- Rust学习之旅(读书笔记):枚举 (Enum)
Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...
- Day37:正则表达式详解
正则表达式 1.1 概述 正则表达式可以用一些规定的字符来制定规则,并用来校验数据格式的合法性. 比如我们在网站上输入用户账号,要求我们输入的账号信息要符合账号的格式,而校验我们输入的账号格式是否正确 ...
- Ajax---EventLoop事件循环
前言 JavaScript 是一门单线程执行的脚本语言.也就是说,同一时间只能做一件事情. JavaScript要运行在宿主环境中(浏览器,nodejs)下.浏览器内部有执行js代码的引擎 ...
- day08-功能实现07
家居网购项目实现07 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 16.功能15-会员显示登录名 16.1需求分析/图解 会 ...
- 使用 sp_executesql 动态执行sql
参考: https://docs.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/sp-executesql ...
- 14、java.sql.SQLException: 无效的列类型: 1111 报错问题解决
转载自 在项目中利用Mybatis做持久化框架,XXXMapper.xml中insert语句做插入时,偶然会遇到一些报错或者说是问题,如下: 一.报错日志: nested exception is o ...
- Kubernetes的垂直和水平扩缩容的性能评估
Kubernetes的垂直和水平扩缩容的性能评估 译自:Performance evaluation of the autoscaling strategies vertical and horizo ...
- APICloud平台使用融云模块实现音视频通话实践经验总结分享
需求概要:实现视频拨打.接听.挂断.视频界面大小窗口.点击小窗口实现大小窗口互换. 实现思路:一方拨打后,另一方要能收到相应事件,然后接听.接通后,渲染对方视频画面.那么己方视频画面什么时候渲染呢?对 ...
- [python] Python数据序列化模块pickle使用笔记
pickle是一个Python的内置模块,用于在Python中实现对象结构序列化和反序列化.Python序列化是一个将Python对象层次结构转换为可以本地存储或者网络传输的字节流的过程,反序列化则是 ...