查尔斯代理修改响应

Posted

技术标签:

【中文标题】查尔斯代理修改响应【英文标题】:Charles proxy modified response 【发布时间】:2016-05-10 23:34:25 【问题描述】:

我正在尝试使用 Charles 代理工具来模拟 JSON 响应并测试 android 应用程序。我可以设置断点并修改响应,但无法稍后重新运行保存的响应。

我的要求保存显示在 charles 代理中的响应,并从 jUnit 测试用例中调用/解析它。这可能吗?

【问题讨论】:

欢迎来到 ***!您能否详细说明您的问题,例如代码或其他东西,以便人们可以及早解决您的问题并为您提供帮助?谢谢! 【参考方案1】:

重新运行已保存响应的步骤:

1) 右键单击​​并将响应保存在您的任何系统文件夹中。

2) 右键单击​​要使用已保存数据访问的服务。

3) 向下滚动,您将看到 Map remote 和 map Local 的选项

4) 选择 Map Local,出现 Edit mapping 对话框。

5) 选择您保存的本地文件。完成

现在每次点击相同,本地保存的响应都会被调用。测试完成后,请右键单击并选择本地地图以将其删除。

https://medium.com/@vsujananth https://youtu.be/HKfVAXMjw_8

【讨论】:

现在您可以通过工具 -> 远程地图 ... 菜单删除映射。我花了几分钟才发现?【参考方案2】:

在 Charles Proxy 中有 3 种不同的方式来修改响应正文:

1) 这是我最喜欢的 - 使用工具 -> 重写。 在这里,您可以为网络调用设置一组规则,如您所愿。通过在“位置”部分下选择单个或多个 URL(或其中的一部分)来执行此操作。 在“规则”下,添加新规则并在“值”部分下选择“URL”作为类型和所需的 URL 响应。您可以选择一个包含所需响应的 URL,或者创建一个模拟的 URL(通过使用“mocky.io”等工具)。

2) 您可以使用“远程地图”并执行相同操作 - 使用包含您想要的响应的 URL 选择您想要修改的网络。

3) 如果您想经常修改响应正文,“映射本地”非常有用 - 选择您想使用本地文件(在您的情况下为 .json 文件)修改的网络。您可以在请求之间修改它并保存它。

我更喜欢“重写”选项,因为: (1) 它可以包含多个 URL 以使用多个“所需” URL 进行修改,您只需要根据当前需要激活/停用。 (2) “地图远程”在某些 Charles 版本中存在错误,在这些版本中您导入外部规则并且您之前的规则完全被覆盖。 (3) 在“重写”上,您可以修改调用的许多内容,例如修改响应正文中的子字符串(通过选择“正文”作为规则类型),添加/修改/删除查询参数或修改响应状态码。

【讨论】:

以上是关于查尔斯代理修改响应的主要内容,如果未能解决你的问题,请参考以下文章

查尔斯代理 Flash 游戏

查尔斯调试代理未连接到本地主机

查尔斯代理本地主机到https

为啥当我在浏览器中设置代理时查尔斯没有捕获流量

查尔斯代理会话导出测试

查尔斯代理将代码添加到头部标签中