[bug] 协同调试时 PUT 请求的重写和断点不生效
Describe the bug 在手机和电脑协同调试时,由手机发起的 PUT 请求不会被重写规则影响,断点也不生效
Screenshots
例如这个例子
- 手机发送的 PUT 请求符合我的重写规则,URL 应当被替换为黄色框中的内容,但是并没有被替换;
- 在发送请求时断点也没有生效;
- 在收到响应时断点生效,而且重写响应的重写器也是正常工作的。
另外,这个问题似乎只存在于协同调试中,当我直接用 Reqable 发送请求并打开跟随调试时就不会有这个问题,断点和重写都能生效。
以下是我的配置
重写
断点
调试列表
Information
- Platform: Windows, Android
- OS: Windows11 23H2, Android13
- Arch: x86_64
- App Version: Windows: 2.6.2 (70), Android: 2.6.2
@JiunnTarn 新年快乐,感谢反馈。我按照你的描述测试了几遍,均未能复现问题。PUT和GET或者POST都是一样的逻辑,没有任何特殊处理。所以如果有问题不应该是PUT请求单独有问题。如果规则不生效的情况,大概有下面的几种可能情况:
- 重写开关未启用,或者相应规则未启用。
- URL未能正确匹配,常见问题比如配置了通配符但是未能打开通配符开关等。
- 多个规则应用到同一个URL,前面的规则修改了路径,后面的规则可能就匹配不上了,因为URL已经发生了变更。
感谢您的回复,也祝您春节快乐!如我截图所示,我认为我的规则设置应该没有问题:通配符开关已经打开,重写和断点开关均已打开,并且规则之间没有重叠。换个角度,既然我使用 Reqable 发送的请求能够正确地被重写和断点,那说明我的规则应该是正确的。如果您的手机里有得物 APP,您可以测试一下修改头像的请求:PUT http://dewu-image.oss-cn-shanghai.aliyuncs.com/app/...
协同调试时,配置了请求重定向。 经过排查日志,请求既发送给了原始接口,也发送给了重定向的那个接口。导致1个请求2个服务器都收到了
@JiunnTarn
感谢回复,你说的情况我明白,但是我使用的是替换请求功能,而非重定向功能。理想情况是当手机发送请求,请求内容被 Reqable 替换后发送给服务器,但是现在直接发送给了服务器,内容没有被替换。
@MrXhh 你说的是一个已知问题,这点在文档中有说明。如果你想要反馈,可以另开一个 issue 来反馈。
@JiunnTarn 写了个android demo,使用okhttp发送put请求,仍然无法复现你的问题。
@MegatronKing 我好像找到原因了:https 正常,http 无法重写请求,请求断点也不生效
@JiunnTarn 已更新2.7.0版本,规则匹配可能存在一些问题。试试新版本,如果还有问题,希望能提供一个可复现的例子。
@JiunnTarn 已更新 2.7.0 版本,规则匹配可能存在一些问题。试试新版本,如果还有问题,希望能提供一个可复现的例子。
这是一个可复现的例子:https://github.com/JiunnTarn/reqable-test
这是我的录屏:https://raw.githubusercontent.com/JiunnTarn/reqable-test/main/record.mp4
不可思议,我确实复现不了,你看我这个录屏(最新2.7.0版本):
https://github.com/reqable/reqable-app/assets/15059084/b93d2da6-ecc7-4273-8cb5-c3a579acd007
@JiunnTarn Reqable已经更新到2.24.0版本,有空可以试试新版本。这个Issue我先关闭,如果有问题再打开。