Charles--修改返回报文

Charles是一款很强大的抓包工具。除了经常使用到的抓取出入口数据外还有其它很强大的功能,例如:修改请求和返回报文、模拟网络环境、给服务器做简单压测等。今天主要和大家聊聊博主经常使用的功能--修改返回报文。

1.通过映射方式修改

Charles中有两种修改映射的方法Map LocalMap Remote,两种方法各有不同的用处。

1.1本地映射Map Local

其实这种方法很好理解,就是修改映射方式让请求去读取我们本地的文件并返回,具体操作可以参考下面。

选中一条网络请求-->右键-->Save Response 将返回报文保存到本地磁盘

enter image description here

选中相同的请求-->右键-->Map Local 将请求映射到刚才保存的返回报文

enter image description here

设置完映射之后每次该请求都会从设置的本地文件中读取并返回数据,我们可以随心所欲的修改保存的报文达到调试接口的目的。
另外如果在开发初期,客户端和服务器端已经定义好了接口,但是服务器端还没有部署好环境。我们也可以通过这个方法把定义好的报文保存到本地,通过修改映射的方式来进行初步开发。

1.2远程映射Map Remote

修改远程映射是通过修改请求的HOST来实现的,可以将请求切换到不同的环境(例如当前的包是正式环境,你想看看测试环境的修改有没有生效,可以不用再打一个测试环境的包,通过修改远程映射快速实现。也省的改手机的HOST的了)。

选中要修改的请求-->右键-->Map Remote 在Map To 栏中填写要映射到的地址的一些参数。

enter image description here

2.通过断点修改

除了修改映射的方法,通过设置断点也可以实现想要的效果。和我们在IDE上设置断点一样,在断点处会进入调试模式,请求会暂时中断,这是我们可以进行一些自定义的操作。

首先开启断点模式,在Charles的面板上方将断点的图标点亮

enter image description here

设置断点,选中要修改的请求-->右键-->BreakPoints (左面出现对勾表示设置成功)。设置完成后,Charles再次抓取到该请求时会自动进入到调试模式。

进入调试模式后可以修改请求报文,或者直接Execute进行下一步

enter image description here

请求报文发送成功后,Charles会拦截服务器返回的数据,这里可以通过Edit Response修改返回数据,或者Execute进行下一步

enter image description here

总结

上面的方法可以用来修改一般的网络请求,但如果数据做了加密处理看不到明文那用处就不大了。
需要注意一点,通过断点的方式会存在一定的问题。数据被拦截后,客户端的请求超时时长是不会停止计算的,如果没在设置的超时时间内返回数据本次请求也就按失败处理了。最后提一下博主通常使用修改本地映射的方法。希望这篇文章会给大家带来帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我喜欢。 一个作家写一本小说,小说的男主角是真实存在的。讲述当男主发现有人在写他,并告诉他,他即将死亡的事情后,所...
    duoduo_four阅读 344评论 0 1
  • 小宝宝来临快10天了,真的被这小娃娃萌坏了。虽然晚上睡不好觉,哭叫挺让我无奈,但看看宝宝的笑容,还是很开心的。看看...
    肖志君阅读 260评论 0 2
  • 筹码。
    黄甫诣阅读 350评论 0 0
  • 【减肥战役:让牛奶帮你保持苗条】 多喝牛奶可以减肥? 这是真的! 要减肥的人,知道吗?牛奶非但不会喝胖人,反而有减...
    玫瑰与水薄荷阅读 321评论 0 1
  • 跟大家分享一个小游戏。叫做《最囧游戏2》,它被称为史上最坑爹游戏。 这个游戏的规则就是没有规则,特点就是处处是套路...
    混沌年华阅读 854评论 0 0