是否有可能重写与查尔斯代理的状态码?(Is it possible to rewrite a sta

2019-08-07 01:54发布

我使用的是查尔斯代理重写从测试目的的API的响应。

如果我设置一个断点,我允许,我想完全重写原始响应。

但是,如果我想通过“重写”工具来自动执行它,我卡住了,似乎你不能修改的状态代码:

你知道,如果我失去了一些东西?

Answer 1:

最新情况:查尔斯代理的3.8版本刚刚发布,与改写状态的能力。 从发行说明 :

  • 重写工具:允许响应状态重写

这个版本的重写UI添加了一个新的“响应状态”规则类型:



Answer 2:

使用查尔斯3.8+,你可以重写的状态代码。

在重写工具,选择“类型:响应状态”。 在匹配字段和替换字段,要知道,查尔斯预计传入和重写状态相匹配的格式"\d{3} .*" 。 这意味着你的改写状态必须有除数字状态代码的消息部分。

例如:

匹配值:201 *。

替换值:502错误的网关

从替换值省略消息将导致没有重写状态行的。 你可以看到每个呼叫的总结注释部分查尔斯的重写工具输出消息。



Answer 3:

这是不是直接回答你的问题,但在我的评论指出上面我是在同样的情况,我发现使用不同的工具,它为我的作品很好的解决方案。

相反查尔斯,我跑mitmproxy ,特别mitmdump ,这个简短的Python 改写脚本 :

#!/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。



Answer 4:

最后编辑:马克Liyanage的回答是最正确的,现在这个问题。

不,你不是,我不认为这是可能改写一个状态代码。

我不能将其添加为注释(新用户),但一个解决方法是:

  1. 将返回你所需要的代码,或者找到那些做一个服务器上创建资源。
  2. 使用地图Remote功能,映射到返回的代码资源。

我一直在使用本地地图,这将是完美的这种尝试,但查尔斯增加了它自己的200个OK状态代码的所有文件返回。

编辑:你也可以使用个体反应断点和修改代码。



文章来源: Is it possible to rewrite a status code with Charles Proxy?