编辑和重播XHR chrome/firefox等?

mad*_*bel 111 browser firefox google-chrome xmlhttprequest

我一直在寻找一种方法来改变我的浏览器中的XHR请求,然后再次重播.假设我在浏览器中完成了一个完整的POST请求,我唯一想要更改的是一个小值,然后再次播放.直接在浏览器中执行此操作会更容易,更快捷.

我已经谷歌了一下,并没有找到办法在Chrome或Firefox中做到这一点.有没有办法在这些浏览器中的任何一个或其他浏览器中执行此操作?

Mic*_*zos 141

Chrome:

在Chrome中执行此操作的一种方法是将请求作为cURL复制到开发人员工具的"网络"面板中,并使用终端中的编辑重播它,假设您拥有该curl命令.看到捕获:

在此输入图像描述

如果您正在寻找"全浏览器工作流程",您可以安装名为"Devtools terminal"的扩展程序,它将您的本地终端嵌入到浏览器中.

Firefox:

Firefox有嵌入式功能.您可以直接从"网络"面板进行编辑并重新发送XHR.以下捕获来自Firefox 36:

在此输入图像描述

  • 我在答案中添加了关于Firefox的信息 (13认同)
  • 在这种情况下,Firefox 到目前为止做得更好! (3认同)
  • 这可能实际上是我正在寻找的。我知道我可以复制 cURL 调用,但我不能直接从我的终端运行它,因为我会得到身份验证。但是由于终端直接内置于 Chorme,我假设调用是从浏览器“内部”进行的。如果是这样,那么这应该会达成协议。 (2认同)

Jos*_*Lee 22

Chrome现在在版本67中具有Copy as fetch:

复制为提取

右键单击网络请求,然后选择" 复制">"复制为提取"fetch(),将该请求的等效代码复制到剪贴板.

https://developers.google.com/web/updates/2018/04/devtools#fetch

样本输出:

fetch("https://stackoverflow.com/posts/validate-body", {
  credentials: "include",
  headers: {},
  referrer: "https://stackoverflow.com/",
  referrerPolicy: "origin",
  body:
    "body=Chrome+now+has+_Copy+as+fetch_+in+version+67%3A%0A%0A%3E+Copy+as+fetch%0ARight-click+a+network+request+then+select+**Copy+%3E+Copy+As+Fetch**+to+copy+the+%60fetch()%60-equivalent+code+for+that+request+to+your+clipboard.%0A%0A&oldBody=&isQuestion=false",
  method: "POST",
  mode: "cors"
});
Run Code Online (Sandbox Code Playgroud)

不同之处在于Copy as cURL还将包含所有请求标头(例如Cookie和Accept),并且适合在Chrome之外重播请求.该fetch()代码适用于在同一浏览器内重播.

  • 这次真是万分感谢。对于任何其他想知道的人-您可以直接在Chrome控制台中粘贴`fetch`命令,然后重播请求。 (2认同)
  • 您可以在获取之后使用以下命令来解析获取的返回的诺言并查看响应主体(假设它是JSON)`.then(r => r.json())。then(json => console.log(json) )` (2认同)
  • 对于那些想知道在哪里粘贴获取代码的人:在控制台上粘贴并修改它 (2认同)

zsz*_*zep 16

我的两点建议:

  1. Chrome的Postman插件 + Postman Interceptor插件.更多信息:邮递员捕获请求文档

  2. 如果你在Windows上,那么Telerik的Fiddler就是一个选择.它有一个用于重放http请求的composer选项,它是免费的.

  • 自从我开始使用Postman + Interceptor chrome扩展以来,我对Fiddler没有任何需求. (8认同)
  • Chrome浏览器的FYI Postman应用现已弃用,将其设置为独立版本会更加困难 (3认同)

Ari*_*rik 13

基于 Microsoft Chromium 的 Edge 支持网络选项卡中的“编辑和重播”请求作为实验性功能:

在此输入图像描述

为了启用该选项,您必须“启用实验功能”。
Control+ Shift+ I(Windows、Linux)或Command+ Option+ I(macOS)
,然后勾选“启用网络控制台”旁边的复选框。

有关如何启用实验工具和该功能的更多详细信息,请参阅此处

更新(2023 年 4 月):这不再是 Edge 中的实验性功能,默认情况下可用

  • 感谢您分享这一点。仅供参考,这仍然是一个实验性功能。您必须通过以下链接启用实验:[启用实验功能](https://learn.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/experimental-features#turn-on-experimental -特征) (2认同)
  • 这不再是 Edge 中的实验性功能。我不需要做任何事情就可以使用它。 (2认同)

jgp*_*s2w 11

更新/完成zszep回答:

将请求复制为cUrl(bash)后,只需在Postman App中导入:

在此输入图像描述


Jar*_*kia 7

对于 Firefox 来说,这个问题自行解决了。它实现了“编辑并重新发送”功能。

对于 Chrome Tamper 扩展似乎可以解决问题。