当前位置: 首页 > article >正文

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

  • 完成设置后点击 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成为一个控制台的调试工具,尤其在开发和优化网络应用时,提供了极大的灵活性和便利性。


http://www.kler.cn/a/517558.html

相关文章:

  • 二叉搜索树中的众数(力扣501)
  • 【精选】基于数据挖掘的招聘信息分析与市场需求预测系统 职位分析、求职者趋势分析 职位匹配、人才趋势、市场需求分析数据挖掘技术 职位需求分析、人才市场趋势预测
  • IP协议特性
  • 数组
  • 基于SpringBoot+WebSocket的前后端连接,并接入文心一言大模型API
  • 78,【2】BUUCTF WEB .[安洵杯 2019]不是文件
  • HarmonyOS NEXT边学边玩:从零实现一个影视App(七、今日票房页面的设计与实现)
  • 结构生物学3-冷冻电镜单颗粒重构:
  • 【C++】异常与智能指针
  • 分组表格antd+ react +ts
  • Python数据分析-数据加载与存储(六)
  • .NET 9.0 的 Blazor Web App 项目、Bootstrap Blazor 组件库、自定义日志 TLog 使用备忘
  • 【开源实录】从App Store审核失败到开源:一个AI辅助开发的SwiftUI项目
  • Docker 在Linux 系统中的使用说明
  • 数据结构与算法再探(六)动态规划
  • AIP-128 声明友好接口
  • Java语言程序设计(第3版) 课后练习
  • 《jEasyUI 动态改变列》
  • 解决lombok注解失效
  • 鸿蒙(HarmonyOS) HDC 命令合集分类记录
  • UDP/TCP ③-拥塞控制 || 滑动窗口 || 流量控制 || 快速重传
  • FineBI数据连接失败
  • 提示词工程(Prompt Engineering)
  • Android多语言开发自动化生成工具
  • Unity3D仿星露谷物语开发25之创建时钟界面
  • 【Rust自学】14.6. 安装二进制crate