reqable-app icon indicating copy to clipboard operation
reqable-app copied to clipboard

[bug] 协同调试时 PUT 请求的重写和断点不生效

Open JiunnTarn opened this issue 1 year ago • 9 comments

Describe the bug 在手机和电脑协同调试时,由手机发起的 PUT 请求不会被重写规则影响,断点也不生效

Screenshots Snipaste_2024-02-09_00-31-19

例如这个例子

  • 手机发送的 PUT 请求符合我的重写规则,URL 应当被替换为黄色框中的内容,但是并没有被替换;
  • 在发送请求时断点也没有生效;
  • 在收到响应时断点生效,而且重写响应的重写器也是正常工作的。

另外,这个问题似乎只存在于协同调试中,当我直接用 Reqable 发送请求并打开跟随调试时就不会有这个问题,断点和重写都能生效。

以下是我的配置

重写

Snipaste_2024-02-09_00-44-40 Snipaste_2024-02-09_00-45-18

断点

Snipaste_2024-02-09_00-45-34

调试列表

Snipaste_2024-02-09_00-53-02

Information

  • Platform: Windows, Android
  • OS: Windows11 23H2, Android13
  • Arch: x86_64
  • App Version: Windows: 2.6.2 (70), Android: 2.6.2

JiunnTarn avatar Feb 08 '24 16:02 JiunnTarn

@JiunnTarn 新年快乐,感谢反馈。我按照你的描述测试了几遍,均未能复现问题。PUT和GET或者POST都是一样的逻辑,没有任何特殊处理。所以如果有问题不应该是PUT请求单独有问题。如果规则不生效的情况,大概有下面的几种可能情况:

  • 重写开关未启用,或者相应规则未启用。
  • URL未能正确匹配,常见问题比如配置了通配符但是未能打开通配符开关等。
  • 多个规则应用到同一个URL,前面的规则修改了路径,后面的规则可能就匹配不上了,因为URL已经发生了变更。

MegatronKing avatar Feb 09 '24 09:02 MegatronKing

感谢您的回复,也祝您春节快乐!如我截图所示,我认为我的规则设置应该没有问题:通配符开关已经打开,重写和断点开关均已打开,并且规则之间没有重叠。换个角度,既然我使用 Reqable 发送的请求能够正确地被重写和断点,那说明我的规则应该是正确的。如果您的手机里有得物 APP,您可以测试一下修改头像的请求:PUT http://dewu-image.oss-cn-shanghai.aliyuncs.com/app/...

JiunnTarn avatar Feb 12 '24 07:02 JiunnTarn

协同调试时,配置了请求重定向。 经过排查日志,请求既发送给了原始接口,也发送给了重定向的那个接口。导致1个请求2个服务器都收到了

@JiunnTarn

感谢回复,你说的情况我明白,但是我使用的是替换请求功能,而非重定向功能。理想情况是当手机发送请求,请求内容被 Reqable 替换后发送给服务器,但是现在直接发送给了服务器,内容没有被替换。

JiunnTarn avatar Feb 18 '24 02:02 JiunnTarn

@MrXhh 你说的是一个已知问题,这点在文档中有说明。如果你想要反馈,可以另开一个 issue 来反馈。 图片

JiunnTarn avatar Feb 18 '24 04:02 JiunnTarn

@JiunnTarn 写了个android demo,使用okhttp发送put请求,仍然无法复现你的问题。

MegatronKing avatar Feb 19 '24 16:02 MegatronKing

@MegatronKing 我好像找到原因了:https 正常,http 无法重写请求,请求断点也不生效

JiunnTarn avatar Feb 20 '24 09:02 JiunnTarn

@JiunnTarn 已更新2.7.0版本,规则匹配可能存在一些问题。试试新版本,如果还有问题,希望能提供一个可复现的例子。

MegatronKing avatar Feb 20 '24 11:02 MegatronKing

@JiunnTarn 已更新 2.7.0 版本,规则匹配可能存在一些问题。试试新版本,如果还有问题,希望能提供一个可复现的例子。

这是一个可复现的例子:https://github.com/JiunnTarn/reqable-test

这是我的录屏:https://raw.githubusercontent.com/JiunnTarn/reqable-test/main/record.mp4

JiunnTarn avatar Feb 20 '24 12:02 JiunnTarn

不可思议,我确实复现不了,你看我这个录屏(最新2.7.0版本):

https://github.com/reqable/reqable-app/assets/15059084/b93d2da6-ecc7-4273-8cb5-c3a579acd007

MegatronKing avatar Feb 20 '24 15:02 MegatronKing

@JiunnTarn Reqable已经更新到2.24.0版本,有空可以试试新版本。这个Issue我先关闭,如果有问题再打开。

MegatronKing avatar Sep 23 '24 16:09 MegatronKing