Charles是一款代理工具,官网中的解释为“HTTP代理/HTTP监视器/反向代理”,在Mac OS中使用比较多,当然也支持Windows的用户,我们可以通过这个代理来查看客户端与服务器之间的交互信息,也可以通过它来修改这些请求或响应当中的信息,从而来验证一些产品功能逻辑。

今天我们主要来了解一些Charles当中修改报文的方法。进入主题之前,有两点需要说明的,第一就是什么是报文。其实报文就是我们所说的消息(message),只是这些消息在网络当中传输需要按照固定的信息格式。第二点,就是修改什么。因为我们提到了多种修改的方法,在判断使用哪种方法之前,如果我们已经清楚修改什么,就有可能选择出更高效的方法。

1.Breakpoint(打断点)

比较适合用于单次的修改。通过打断点的方式,在请求(Request)到达服务端前和响应(Response)到达客户端前分别可以实现一次拦截,这样我们可以通过修改Request来“欺骗”服务端,修改Response来“欺骗”客户端。

如上图所示,这中间的信息我们都是可以进行修改的,比如把请求方式由GET改为POST,改完后点击Execute即可继续进行下一步。

如上图所示,响应中的http状态码、报文数据等也可以在拦截之后进行修改。打断点是每次都要修改的,如果你想要“一劳永逸”,就需要采用下面的方法了。

2.Rewrite

比较适合用于修改报文中的url、固定字段、字符串等,打开Charles工具栏的Tools,找到Rewrite点击进入设置。

1) 修改url:比如说请求url发生了变化,需要将www.test.com修改为www.test2.com。

2) 修改返回的http状态码:比如某条请求在返回时,客户端根据请求的状态码做了判断,当请求成功(200)时,就实现逻辑一,请求不成功了就实现逻辑二,这时我们可以通过把请求的状态码修改为200,来验证第一条逻辑,也可以把状态码改成404,来验证第二条逻辑。

如上图所示,我们一定要在设置的时候勾选上Regex,表示我们使用了正则,这样\d{3}就代表3个并列的整数,也就等同于http的状态码了。

3) 修改响应中的字符:比如有些测试环境当中不支持https的链接,有些图片链接是https开头时,会显示为灰图,那么我们可以把返回的报文中https修改为http。

3.Map(重定向)

1) Map Remote

比较适合用于做单纯的域名转发,比如上文中通过Rewrite修改url,这种问题也可以用Map Remote来解决。

如上图所示,我们的一次Map Remote,实现了下面四项修改:

修改项

修改前

修改后

Protocol

http

https

Host

www.test.com

www.test2.com

Path

/a/b/c

/a/b/c/d

Query

page=0

page=1

2) Map Local

如果你只需要对返回报文的Body进行修改,而且修改之后的内容固定为某一批数据就可以,那么这个功能就可以帮到你,因为我们可以把请求转发到本地文件。

搜狗测试微信号:Qa_xiaoming

搜狗测试QQ粉丝群:459645679

charles请求转发_使用Charles代理进行请求转发相关推荐

  1. java 端口转发_用Java快速实现端口转发

    我已经构建了一个打开ServerSocket的简单应用程序,并在连接时将其自身连接到远程计算机上的另一个服务器套接字.为了实现端口转发,我使用了两个线程,一个线程从本地输入流读取并向远程套接字输出流读 ...

  2. 设备描述符请求失败_如果用户发出过多请求 苹果将取消Apple ID帐户恢复

    出于安全原因,恢复丢失的苹果ID帐户可能需要几天时间,但如果用户希望顺利恢复,则该避免采取一些行动.任何人都可能忘记他们的Apple ID密码,因此该公司必须为用户提供一种方法,让用户在他们忘记密码的 ...

  3. node 请求数据_使用Node获取HTTP请求主体数据

    node 请求数据 Here is how you can extract the data that was sent as JSON in the request body. 这是在请求正文中提取 ...

  4. HTTP代理实现请求报文的拦截与篡改2--功能介绍+源码下载

    返回目录 思路有了,下面就是来实现它了,在这里,我们采用我们熟悉的C#来实现,C#下有一个完整的WEB DEBUGGER(含代理服务器方式实现的HTTP请求拦截与篡改功能)的实现--Fiddler,F ...

  5. postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例

    在前面的文章中,也有介绍类似的工具的.例如:一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例,postman接口用例转化为python自动化测试用例 文章记录了如何把po ...

  6. 为什么我charles抓包带了给锁_使用Charles抓包

    使用Charles抓包 Charles抓包 Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request.respo ...

  7. 解决手机安装Charles证书后,https抓取的请求依然为unknown

    手机安装Charles证书后,https抓取的请求依然为unknown 1.选中"启动SSL代理" 2.点击"添加": 主机:* 端口:443 如下图: 3.再 ...

  8. 公司使用charles抓包,手机设置代理之后提示网络不可用个人解决方案

    之前有在使用charles,手机设置代理的时候是可以联网并且可以抓到小程序的包的,昨天使用的时候,手机设置代理死活都提示无法上网,奔溃!!! 查了一天问题 最后终于是排查出来了问题 检查思路:1.先是 ...

  9. java移动端接口测试_借助Charles来测试移动端-下篇

    本篇是借助Charles来测试移动端的下半篇.(上篇任意门点我) 上次说到可以借助Charles来抓移动端的网络请求,接下来,我们来看一下怎么通过Charles来模拟返回,还是以网页版豆瓣为例. 先找 ...

  10. 使用charles修改服务器返回数据,Charles使用part4——修改网络请求

    Charles提供了Map功能.Rewrite功能.Breakpoints功能,都可以达到修改服务器返回内容的目的,这三者的差异是: Map功能适合长期的将某些请求重定向到另一个网络地址或本地文件 M ...

最新文章

  1. python2 中使用pip2 install package_name的时候报错:AttributeError: ‘int‘ object has no attribute ‘endswith‘
  2. 「拼房」你敢吗?这款App这样玩「陌生人社交」
  3. php导出页面居中设置,PHPExcel导出插入图片和居中问题
  4. TCP协议相关属性设置之SO_DONTLINGER属性
  5. tomcat 7 无法打开管理页面
  6. PIL图像处理时使用np.unit8转化报错: Cannot handle this data type: (1, 1), |O
  7. “ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。
  8. 锐浪报表开发Web版
  9. windows server 2003 R2密钥
  10. 个税计算器python代码_用python写一个北京市的个税计算器
  11. 计算机视觉研究新方向:自监督表示学习总结(建议收藏)
  12. pymssql连接sql server报错Unable to connect: Adaptive Server is unavailable
  13. 适合全屏手机的高清壁纸,看这里!
  14. python lisp_给Lisp程序员的Python简介
  15. django app服务器搭建
  16. 计算机机器人兴趣小组活动总结,科技活动总结范文5篇
  17. 3c计算机通讯消费类电子产品,什么是3c产品?3c产品具体包括哪些
  18. 废旧三元锂电池回收提镍钴锰
  19. NMAP手册中文版(附英文解释版)
  20. SAP FICO 基础(1)中日双语

热门文章

  1. 计算机在线计算手写,手写计算器在线使用
  2. 远程命令行添加(删除)注册表键值(远程打开)
  3. CMSIS-DSP lib 矩阵运算示例和源码
  4. 大数据学习---HIVE入门SQL学习
  5. 【Ubuntu teamview 安装与卸载】
  6. 【基于Proteus 8 Professional和Keil uVision5简单共阴极数码管点亮】
  7. 一次完整的软件工程课程设计
  8. java gui 测试工具_开发者眼中最好的22款GUI测试工具(上)
  9. sql 循环语句几种方式
  10. 圣经与超级计算机,圣经创世纪里的时间概念和爱因斯坦相对论