前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Charles代理进行请求转发

使用Charles代理进行请求转发

作者头像
用户5521279
发布2019-09-25 15:12:20
6.5K0
发布2019-09-25 15:12:20
举报
文章被收录于专栏:搜狗测试

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进行修改,而且修改之后的内容固定为某一批数据就可以,那么这个功能就可以帮到你,因为我们可以把请求转发到本地文件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 搜狗测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档