Charles模拟弱网环境 修改请求返回值 一分钟搞定网络抓包

之前写过一篇文章介绍过利用Charles进行网络抓包以及抓取手机App网络请求,此处不再阐述,贴上传送门

一分钟搞定Charles手机APP抓包

今天重点介绍如何利用Charles进行模拟弱网环境以及修改请求返回值。

模拟弱网环境

模拟弱网环境简单粗暴,只需两步即可,直接上图。
选择 ProxyThrottle Setting→勾选上 Enable Throttling→ 选择Throttle Preset 类型即可

弱网1.png

弱网2.png

如果只想模拟指定网站的慢速网络,再勾选图中的Only for selected hosts项,然后在对话框的下半部分设置中add指定的 hosts 项。

修改请求返回值

在App开发过程中,到了和后台联调过程阶段,经常会遇到后台数据返回不全、请求参数需要修改等情况。如果每次都在app端修改,或者反复依靠后台人员处理数据,只会增加工作量,而且每次都要重新运行app,浪费时间。

所以我们就可以使用Charles,对app进行抓包,请求断点,修改请求与返回的数据,重新发送请求,以满足我们的需求。

1、打断点

找到要修改返回值的接口打断点:右击接口→选择Breakpoints

修改1.png

设置断点完成后,再次请求时会自动进入到调试模式。进入断点后点击Edit Request,然后点击右下角Execute

修改2.png

此时再次点击Edit Request,然后点击底部JSON Text,即可看到返回的报文,针对自己想要的字段进行修改

修改3.png

修改4.png

需要注意的是,通过断点的方式修改返回值会存在一定的问题:数据被拦截后,客户端的请求超时时长是不会停止计算的,如果没在设置的超时时间内返回数据本次请求也就按失败处理了。

2、映射

Charles 的 Map 功能分 Map RemoteMap Local 两种,顾名思义,Map Remote 是将指定的网络请求重定向到另一个网址请求地址,Map Local 是将指定的网络请求重定向到本地文件。

Map Local 本地映射

首先找到接口,右击→选择Save Response,将网络请求返回的报文保存在本地,切记一定要记住保存的目录,后面还要用到。

修改5.png

保存完后本地可以进行修改,设置自己想要的返回值。

然后再次右击接口,选择Map Local,通过Choose导入本地文件。

修改6.png

修改7.png

Map Remote 远程映射
同样找到接口,右击→Map Remote

远程映射.png

填入具体的参数即可

3、Rewrite

Rewrite 功能功能适合对某一类网络请求进行一些正则替换,以达到修改结果的目的。选择ToolsRewrite

重写.png

至此介绍了通过Charles提供的Map、 Rewrite 以及Breakpoints来修改服务器返回内容。这三者在功能上的差异是:

  • Breakpoints 功能适合做一些临时性的修改。
  • Map 功能适合长期地将某一些请求重定向到另一个网络地址或本地文件。
  • Rewrite 功能适合对网络请求进行一些正则替换。

Charles模拟弱网环境和修改网络请求返回报文今天就介绍的这里。关于Charles其他功能后续会陆续推出,敬请关注。

更多技术知识请关注公众号
iOS进阶


我的二维码.jpg

你可能感兴趣的:(Charles模拟弱网环境 修改请求返回值 一分钟搞定网络抓包)