可以用Charles Proxy重写状态代码吗?

可以用Charles Proxy重写状态代码吗?,proxy,rewrite,charles-proxy,Proxy,Rewrite,Charles Proxy,我正在使用Charles Proxy重写API的响应以进行测试 如果我设置了一个断点,我就可以按照自己的意愿完全重写原始响应 但是,如果我想通过“重写”工具将其自动化,我被卡住了,您似乎无法修改状态代码: 你知道我是否遗漏了什么吗?这不是对你问题的直接回答,但正如我在上面的评论中所指出的,我也遇到了同样的情况,我找到了一个使用不同工具的解决方案,对我来说效果很好 我不是Charles,而是使用以下短Python运行: 要将其挂接到代理,我运行mitmdump如下: mitmdump -s /p

我正在使用Charles Proxy重写API的响应以进行测试

如果我设置了一个断点,我就可以按照自己的意愿完全重写原始响应

但是,如果我想通过“重写”工具将其自动化,我被卡住了,您似乎无法修改状态代码:


你知道我是否遗漏了什么吗?

这不是对你问题的直接回答,但正如我在上面的评论中所指出的,我也遇到了同样的情况,我找到了一个使用不同工具的解决方案,对我来说效果很好

我不是Charles,而是使用以下短Python运行:

要将其挂接到代理,我运行
mitmdump
如下:

mitmdump -s /path/to/rewriting-script.py
而且效果很好


我使用的是OS X,我将网络接口的web代理配置为127.0.0.1端口8080。

最终编辑:现在Marc Liyanage的答案对于这个问题是最正确的。

不,你不是,我不认为重写状态码是可能的

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

  • 在服务器上创建可返回所需代码的资源,或查找可返回所需代码的资源
  • 使用映射远程功能,映射到返回代码的资源
  • 我尝试过使用MapLocal,这将是完美的,但Charles将其自己的200 OK状态代码添加到所有返回的文件中


    编辑:您还可以在单个响应上使用断点并修改代码。

    更新:Charles Proxy的3.8版刚刚发布,具有重写状态的功能。从:

    • 重写工具:允许重写响应状态
    此版本的重写UI添加了一个新的“响应状态”规则类型:


    使用Charles 3.8+,您可以重写状态代码

    在重写工具中,选择“类型:响应状态”。 在match字段和replace字段中,请注意Charles希望传入和重写状态与格式
    “\d{3}.*”
    匹配。这意味着您的重写状态除了数字状态代码外,还必须有一个消息部分

    例如:

    匹配值:201*

    替换值:502坏网关

    从replace值中省略消息将不会导致重写状态行。
    您可以在每次通话摘要的备注部分看到Charles的重写工具输出消息。

    1-选择
    Tools>rewrite
    OPTION+CMD+R


    2-选择
    启用重写
    ,然后选择
    添加


    3-用您的详细信息填写字段


    4-添加类型和操作


    5-选择操作类型-
    响应状态
    针对我们的案例-,写入要更改的值-500-,写入替换值-200-


    最后一步:

    6-您已准备好操纵您与Charles的回复状态代码


    这不是对Charles的直接回答,但是您可以编写JS代码来轻松地使用()

    比如说,

    函数onResponse(url、请求、响应){ //将匹配请求更改为404状态代码 response.statusCode=404; 返回响应; } 以下是您可以执行的操作的完整列表:


    免责声明:我是Proxyman的创建者。希望它能对你有所帮助。

    我只是想知道同样的事情。我现在正需要这个功能,所以我向Charles Proxy的作者发送了一个支持请求。如果我知道了一种方法,我会向你汇报的。效果很好。感谢在我的Charles版本(3.10.1)中,我必须输入状态代码和消息,才能使重写生效。对于上面的示例,我必须将“500”替换为“500错误”。@marc是否可以使用自定义数据重写API,直到禁用为止?@NevinMadhukarK我不确定您到底在问什么,但如果是关于重写响应负载,也应该可以,但与此问题无关。也许可以开始一个新的问题线索。Marc Liyanage答案是新版本Charles(3.8+)的正确答案。
    mitmdump -s /path/to/rewriting-script.py