查尔斯代理修改响应
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) 在“重写”上,您可以修改调用的许多内容,例如修改响应正文中的子字符串(通过选择“正文”作为规则类型),添加/修改/删除查询参数或修改响应状态码。
【讨论】:
以上是关于查尔斯代理修改响应的主要内容,如果未能解决你的问题,请参考以下文章