devtools.network.onRequestFinished

当网络请求完成并且扩展程序可以访问其详细信息时触发。

请求作为 HAR 条目对象 提供,该对象还提供了一个异步 getContent() 方法,用于获取响应正文内容。

请注意,尽管您的扩展程序可以随时添加侦听器,但只有在用户至少激活一次浏览器的 网络面板 后,它才会开始触发。

语法

js
browser.devtools.network.onRequestFinished.addListener(listener)
browser.devtools.network.onRequestFinished.removeListener(listener)
browser.devtools.network.onRequestFinished.hasListener(listener)

事件具有三个函数

addListener(listener)

向此事件添加侦听器。

removeListener(listener)

停止侦听此事件。listener 参数是要移除的侦听器。

hasListener(listener)

检查是否为该事件注册了 listener。如果正在侦听,则返回 true,否则返回 false

addListener 语法

参数

listener

发生此事件时调用的函数。该函数传递此参数

request

object。表示请求的对象。此对象是单个 HAR 条目 对象。它还定义了一个异步 getContent() 方法,该方法返回一个 Promise,该方法解析为包含两个元素的数组。第一个元素是作为字符串的 HTTP 响应正文,第二个元素是作为字符串的 HTTP 响应的 MIME 类型

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

示例

添加一个侦听器,记录每个网络请求的服务器 IP 地址和响应正文。

js
function handleRequestFinished(request) {
  console.log("Server IP: ", request.serverIPAddress);
  request.getContent().then(([content, mimeType]) => {
    console.log("Content: ", content);
    console.log("MIME type: ", mimeType);
  });
}

browser.devtools.network.onRequestFinished.addListener(handleRequestFinished);

注意:此 API 基于 Chromium 的 chrome.devtools API。