我正在使用 Charles Proxy 重写来自 API 的响应以进行测试。
如果我设置了一个断点,我可以按照我的意愿完全重写原始响应。
但是,如果我想通过“重写”工具将其自动化,我就卡住了,看来您无法修改状态代码:
https://i.stack.imgur.com/PeoUC.png
你知道我是否遗漏了什么吗?
更新:Charles Proxy 3.8 版刚刚发布,具有重写状态的能力。从 release notes:
重写工具:允许重写响应状态
此版本的重写 UI 添加了新的“响应状态”规则类型:
https://i.stack.imgur.com/r60Pj.png
1- 选择 Tools > Rewrite
或 OPTION + CMD + R
https://i.stack.imgur.com/0oNkv.png
2- 选择 Enable Rewrite
,然后选择 Add
https://i.stack.imgur.com/AmT3y.jpg
3-用您的详细信息填写字段
https://i.stack.imgur.com/37Hd2.png
4-添加类型和动作
https://i.stack.imgur.com/q0N0D.jpg
5- 选择操作类型 - Response Status
对于我们的案例 - 写入要更改的值 -500-,写入替换值 -200-
https://i.stack.imgur.com/KUBfq.jpg
最后一步:
6-您已准备好与 Charles 一起操作响应的状态代码
https://i.stack.imgur.com/V5uXF.jpg
Official site of Charles Web Debugging Proxy
使用 Charles 3.8+,您可以重写状态码。
在重写工具中,选择“类型:响应状态”。在匹配字段和替换字段中,请注意 Charles 希望传入和重写的状态与格式 "\d{3} .*"
匹配。这意味着您重写的状态除了数字状态代码之外还必须有一个消息部分。
例如:
匹配值:201 .* 替换值:502 Bad Gateway
从替换值中省略消息将导致不重写状态行。您可以在每次通话摘要的备注部分中查看 Charles 的重写工具输出消息。
这不是您问题的直接答案,但正如我在上面的评论中指出的那样,我处于同样的情况,我找到了一个使用适合我的不同工具的解决方案。
我使用这个简短的 Python rewriting script 运行 mitmproxy,特别是 mitmdump,而不是 Charles:
#!/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 Remote 功能,映射到返回代码的资源。
我已经尝试使用 Map Local,这将是完美的,但查尔斯将它自己的 200 OK 状态代码添加到所有返回的文件中。
编辑:您也可以在单个响应上使用断点并修改代码。
这不是对 Charles 的直接回答,但您可以编写 JS 代码以使用 Proxyman (Scripting feature) 轻松更改 HTTP 响应
例如,
function onResponse(url, request, response) {
// Change to 404 status code for the matching request
response.statusCode = 404;
return response;
}
以下是您可以执行的 Snippet Code 的完整列表:
免责声明:我是 Proxyman 的创建者。希望它可以帮助你。
使用Requestly Desktop App,您不仅可以修改请求的响应,还可以在 30 秒内修改状态码。
除此之外,您还可以:
为需要匹配的 URL 定义正则表达式/通配符模式。
保存规则(这样就不需要一次又一次地修改状态码)。
https://i.stack.imgur.com/iMKeI.png
这是相同的快速演示。 https://youtu.be/nLcIZGmMAtQ
不定期副业成功案例分享