是否可以使用Charles Proxy重写状态代码?

Tho*_*mas 54 proxy rewrite charles-proxy

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

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

但是,如果我想通过"重写"工具自动化它,我就卡住了,似乎你无法修改状态代码:

重写规则面板

你知道我错过了什么吗?

Mar*_*age 101

更新:Charles Proxy的3.8版刚刚发布,具有重写状态的能力.从发行说明:

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

此版本的重写UI添加了新的"响应状态"规则类型:

在此输入图像描述

  • 在我的Charles(3.10.1)版本中,我必须输入状态代码和重写消息才能工作.对于上面的例子,我必须用"500错误"替换"500". (37认同)

emr*_*tci 17

1- 选择Tools > RewriteOPTION + CMD + R

重写选择


2- 选择Enable Rewrite然后选择Add

启用重写选择


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

细节


4- 添加类型和操作

类型和操作


5- 选择操作类型 -Response Status对于我们的情况 - 写入要更改的值 -500-,写入替换值 -200-

配置类型和操作


最后一步:

6- 您已准备好与 Charles 一起操作响应的状态代码

最后

Charles Web Debugging Proxy 官网

  • 这里的最佳答案,对插图非常有帮助,并且坚持主题:查尔斯。不过,需要进行一项更改:从 Charles 4.6.2 开始,您需要在“200”代码之后(在替换部分中)指定一些内容,例如“200 OK”或“200 Banana” - 任何内容,但必须有一些内容。 (4认同)
  • 我会更新答案,谢谢您的评论。 (2认同)

小智 14

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

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

例如:

比赛价值:201.*

替换值:502 Bad Gateway

从替换值中省略消息将导致不重写状态行.您可以在每个调用摘要的"注释"部分中看到Charles的重写工具输出消息.


Mar*_*age 9

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

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

#!/usr/bin/env python

def response(context, flow):
    if '/somePath' not in flow.request.path:
        return

    flow.response.status_code = 404
Run Code Online (Sandbox Code Playgroud)

要将它挂钩到代理中,我运行mitmdump如下:

mitmdump -s /path/to/rewriting-script.py
Run Code Online (Sandbox Code Playgroud)

它很棒.

我在OS X上,我将网络接口的Web代理配置为127.0.0.1端口8080.