首页 > 其他分享 >《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇

时间:2023-03-08 10:12:39浏览次数:33  
标签:10 教程 请求 Map Charles 功能 修改 Rewrite

1.简介

宏哥之前一直用postman调接口比较多(web端),也非常容易上手和操作。但有时候想要去修改APP的页面展示,造数据又会比较麻烦,你自己造相对还好些,要是让开发造,还得低眉顺眼的去求人。通过今天的学习后,再也不担心这些烦心事。我们可以通过工具Charles就可以实现。可以用以下三种方法修改请求参数或修改响应:map(映射)、Breakpoints(打断点)、Rewrite(重写)。

2.修改请求参数或者响应数据的方法

根据具体的需求,Charles 提供了 Map 功能、 Rewrite 功能以及 Breakpoints 功能,都可以达到修改服务器返回内容的目的。这三者在功能上的差异是:

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.小结

 

标签:10,教程,请求,Map,Charles,功能,修改,Rewrite
From: https://www.cnblogs.com/du-hong/p/17125988.html

相关文章

  • python连接oracle 19c报错误ORA-01017: invalid username/password
    环境:db:19cpython:3.6最近有使用到cx_oracle(5.3)模块,这里记录下出现的问题由于我的项目一直在是windows上测试,最近把项目更新到linux下后,再去跑代码,发现代码报出ORA-2......
  • 【题解】[Ynoi2010] y-fast trie
    题目分析:显然可以对于所有的\(x\)对\(C\)取模后处理。那么就是两种情况:\(x+y\geC\)\(x+y<C\)对于第一种情况直接找最大的两个数就好了,关键就是第二种情......
  • Tkinter使用教程记录
    简介Tkinter是Python的标准GUI库。Python使用Tkinter可以快速地创建GUI应用程序。当然常用的GUI库还有PyQt5,我们只需要知道这两个常用的即可,如果你真的想学习的话。由......
  • vue3:setup语法糖使用教程
    setup语法糖简介直接在script标签中添加setup属性就可以直接使用setup语法糖了。使用setup语法糖后,不用写setup函数;组件只需要引入不需要注册;属性和方法也不需要再返回,可......
  • Tomcat安装及配置教程
     java环境的配置 1java环境的配置应该都学过吧,这里简单的讲一下。下载安装javaJDK,注意安装的路径,我们需要进行环境变量的配置。2安装完成以后,配置......
  • 【win10优化系列】FRP内网穿透-远程桌面
    前言frp采用Golang编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。frp主要由客户端(frpc)和服务端(frps)组成,服务端通常部署在具有公网IP的......
  • PAT Basic 1014. 福尔摩斯的约会
    PATBasic1014.福尔摩斯的约会1.题目描述:大侦探福尔摩斯接到一张奇怪的字条:我们约会吧!3485djDkxh4hhGE2984akDfkkkkggEdsbs&hgsfdkd&Hyscvnm大侦探很快就......
  • L10.面向对象
    --父类localParentClass={id="085",name="紫霞",--ParentClass.__index=ParentClass#自索引错误写法,__index赋值的是一个nil值,也就是说......
  • 银河麒麟kylin_v10安装OpenLiteSpeed
    系统版本:kylinv10sp2更新yum源[root@localhost~]#wget-O/etc/yum.repos.d/CentOS-Base.repohttps://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.reposed-......
  • win10无法打开 Microsoft Store 或者Windows10 无商店重新安装
    MicrosoftStore独立包官方版MicrosoftStore独立包官方版是一款功能实用的应用商店工具。MicrosoftStore独立包最新版订阅服务处理功能变得更加强大,用户可以订阅各种应......