Charles 4.6.7 浏览器网络调试指南:功能详解下(五)
概述
上篇文章我们提到Map Local 可能会存在一个小缺陷,其返回的 HTTP Response Header 与正常的网络请求不一样,如果程序设置了校验 Header 信息,此时 Map Local 就会失败,解决办法是同时用Rewrite功能将相关的HTTP 头部信息 rewrite 成我们需要的信息。
Rewrite 功能
Rewrite 适合对某个网络请求进行正则替换,以达到修改结果的目的;假如我的 App 的界面上的显示的功能模块及其点击事件是根据接口来完成的,我想实现替换功能模块的名称的目的。
- 点击顶部菜单栏的**“Tools” -> "Rewrite"**。在弹出的面板上勾选 “Enable Rewrite”。
- 点击左下角的 Add按钮,在右上角的 **Name:**处写好本次配置的名称(如果有多个 Rewrite,为了后期容易区分)。
- 支持针对特定的网络请求进行 Rewrite。可以点击右上角 Location 面板下面的 Add按钮。在弹出的面板上设置网络请求配置信息。
-
- 然后对指定的 Type 和 Action 进行 Rewrite。
- Type 主要有 Add Header、Modify Header、Remove Header、Host、Path等等。
- Where 可以选择 Request 和 Response。指的是下面的修改是针对 Request 还是 Response
- 然后对指定的 Type 和 Action 进行 Rewrite。
- 完成设置后点击 Apply 按钮,即可生效。下次继续请求该网络,返回的内容就是我们刚刚设置的内容。
Breakpoints 功能
Breakpoints 相比于其他几个修改网络请求的特点是只是针对当前的网络请求,Breakpoints 只存在于设置过的当前的网络请求,Charles 关闭后下次打开 Breakpoints 消失了。想要修改网络请求 Breakpoints 步骤最简单,跟我们调试工具里面设置的断点一样方便。
- 可以 Edit Request,修改过 Request 之后点击右下角的 Execute 按钮。
- 等到服务端返回的时候继续是断点状态,此时可以 Edit Response。
- 选中某个网络请求 -> 右击 -> 点击“Breakpoints”。
- 对该接口设置了 Breakpoints。请求网络后 Edit Response,点击 execute 后服务端返回的结果就是我们编辑的内容了。
反向代理
Charles 的反向代理功能允许我们将本地指定端口的请求映射到远程的另一个端口上。设置:点击顶部菜单栏 Proxy -> 点击 Reverse Proxies;我将本地的 8080 端口映射到远程的 80 端口上,点击 OK 生效后,当我继续访问本地的 80 端口,实际返回的就是远程 80 端口的提供的内容了。
5. 总结
在本文中,我们深入探讨了Charles的几个强大功能,包括断点功能和重写功能,分别帮助用户精确控制修改它们以及网络请求与响应。此外,文章还介绍了Charles的反向代理功能,能够方便地模拟复杂的网络环境,以及如何通过服务器压力测试工具测试系统的承载能力。这些功能使得Charles成为一个控制台的调试工具,尤其在开发和优化网络应用时,提供了极大的灵活性和便利性。