charles请求转发_使用Charles代理进行请求转发
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代理进行请求转发相关推荐
- java 端口转发_用Java快速实现端口转发
我已经构建了一个打开ServerSocket的简单应用程序,并在连接时将其自身连接到远程计算机上的另一个服务器套接字.为了实现端口转发,我使用了两个线程,一个线程从本地输入流读取并向远程套接字输出流读 ...
- 设备描述符请求失败_如果用户发出过多请求 苹果将取消Apple ID帐户恢复
出于安全原因,恢复丢失的苹果ID帐户可能需要几天时间,但如果用户希望顺利恢复,则该避免采取一些行动.任何人都可能忘记他们的Apple ID密码,因此该公司必须为用户提供一种方法,让用户在他们忘记密码的 ...
- node 请求数据_使用Node获取HTTP请求主体数据
node 请求数据 Here is how you can extract the data that was sent as JSON in the request body. 这是在请求正文中提取 ...
- HTTP代理实现请求报文的拦截与篡改2--功能介绍+源码下载
返回目录 思路有了,下面就是来实现它了,在这里,我们采用我们熟悉的C#来实现,C#下有一个完整的WEB DEBUGGER(含代理服务器方式实现的HTTP请求拦截与篡改功能)的实现--Fiddler,F ...
- postman怎么导出测试用例_利用Charles抓包巧转接口自动化测试用例
在前面的文章中,也有介绍类似的工具的.例如:一键将接口请求转为测试用例介绍了开源的mitmproxy录制转化为接口测试用例,postman接口用例转化为python自动化测试用例 文章记录了如何把po ...
- 为什么我charles抓包带了给锁_使用Charles抓包
使用Charles抓包 Charles抓包 Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request.respo ...
- 解决手机安装Charles证书后,https抓取的请求依然为unknown
手机安装Charles证书后,https抓取的请求依然为unknown 1.选中"启动SSL代理" 2.点击"添加": 主机:* 端口:443 如下图: 3.再 ...
- 公司使用charles抓包,手机设置代理之后提示网络不可用个人解决方案
之前有在使用charles,手机设置代理的时候是可以联网并且可以抓到小程序的包的,昨天使用的时候,手机设置代理死活都提示无法上网,奔溃!!! 查了一天问题 最后终于是排查出来了问题 检查思路:1.先是 ...
- java移动端接口测试_借助Charles来测试移动端-下篇
本篇是借助Charles来测试移动端的下半篇.(上篇任意门点我) 上次说到可以借助Charles来抓移动端的网络请求,接下来,我们来看一下怎么通过Charles来模拟返回,还是以网页版豆瓣为例. 先找 ...
- 使用charles修改服务器返回数据,Charles使用part4——修改网络请求
Charles提供了Map功能.Rewrite功能.Breakpoints功能,都可以达到修改服务器返回内容的目的,这三者的差异是: Map功能适合长期的将某些请求重定向到另一个网络地址或本地文件 M ...
最新文章
- python2 中使用pip2 install package_name的时候报错:AttributeError: ‘int‘ object has no attribute ‘endswith‘
- 「拼房」你敢吗?这款App这样玩「陌生人社交」
- php导出页面居中设置,PHPExcel导出插入图片和居中问题
- TCP协议相关属性设置之SO_DONTLINGER属性
- tomcat 7 无法打开管理页面
- PIL图像处理时使用np.unit8转化报错: Cannot handle this data type: (1, 1), |O
- “ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。
- 锐浪报表开发Web版
- windows server 2003 R2密钥
- 个税计算器python代码_用python写一个北京市的个税计算器
- 计算机视觉研究新方向:自监督表示学习总结(建议收藏)
- pymssql连接sql server报错Unable to connect: Adaptive Server is unavailable
- 适合全屏手机的高清壁纸,看这里!
- python lisp_给Lisp程序员的Python简介
- django app服务器搭建
- 计算机机器人兴趣小组活动总结,科技活动总结范文5篇
- 3c计算机通讯消费类电子产品,什么是3c产品?3c产品具体包括哪些
- 废旧三元锂电池回收提镍钴锰
- NMAP手册中文版(附英文解释版)
- SAP FICO 基础(1)中日双语