我正在使用 Charles Proxy 重写来自 API 的响应以进行测试。
如果我设置了一个断点,我可以按照我的意愿完全重写原始响应。
但是,如果我想通过“重写”工具自动化它,我就卡住了,似乎你无法修改状态码:
你知道我是否遗漏了什么吗?
我正在使用 Charles Proxy 重写来自 API 的响应以进行测试。
如果我设置了一个断点,我可以按照我的意愿完全重写原始响应。
但是,如果我想通过“重写”工具自动化它,我就卡住了,似乎你无法修改状态码:
你知道我是否遗漏了什么吗?
1- 选择Tools > Rewrite
或OPTION + CMD + R
2-选择Enable Rewrite
然后选择Add
3-用您的详细信息填写字段
4-添加类型和动作
5- 选择动作类型 -Response Status
对于我们的例子 - 写入要更改的值 -500-,写入要替换的值 -200-
最后一步:
6-您已准备好与 Charles 一起操作响应的状态代码
使用 Charles 3.8+,您可以重写状态码。
在重写工具中,选择“类型:响应状态”。在匹配字段和替换字段中,请注意 Charles 希望传入和重写的状态与格式匹配"\d{3} .*"
。这意味着您重写的状态除了数字状态代码之外还必须有一个消息部分。
例如:
匹配值:201 .*
替换值:502 Bad Gateway
从替换值中省略消息将导致不重写状态行。您可以在每次通话摘要的备注部分中查看 Charles 的重写工具输出消息。
这不是您问题的直接答案,但正如我在上面的评论中指出的那样,我处于同样的情况,我找到了一个使用适合我的不同工具的解决方案。
我没有使用 Charles,而是使用这个简短的 Python重写脚本运行mitmproxy,特别是mitmdump:
#!/usr/bin/env python
def response(context, flow):
if '/somePath' not in flow.request.path:
return
flow.response.status_code = 404
要将其连接到代理中,我运行mitmdump
如下:
mitmdump -s /path/to/rewriting-script.py
而且效果很好。
我在 OS X 上,我将网络接口的 Web 代理配置为 127.0.0.1 端口 8080。
最终编辑:Marc Liyanage 的答案现在对于这个问题是最正确的。
不,你不是,我认为不可能重写状态码。
我无法将此添加为评论(新用户),但一种解决方法是:
我已经尝试使用 Map Local,这将是完美的,但查尔斯将它自己的 200 OK 状态代码添加到所有返回的文件中。
编辑:您也可以在单个响应上使用断点并修改代码。
使用Requestly 桌面应用程序,您不仅可以修改请求的响应,还可以在 30 秒内修改状态码和状态码。
除此之外,您还可以:
这是相同的快速演示。 https://youtu.be/nLcIZGmMatQ