在Chrome扩展程序中访问响应负载/数据

9

我正在处理一个项目,需要跟踪特定网站的请求“ajax ones”,访问某些请求的响应有效负载并对它们进行操作。

到目前为止,我使用webRequest api跟踪请求并访问它们的标头,唯一的问题是我找不到任何方式来访问这些响应中的实际数据。

这个问题是否可能解决?

请随意发布任何可以帮助的想法或参考资料。

谢谢并祝您拥有愉快的一天。


编辑:

我想要的例子就是Chrome开发工具中网络面板中的响应选项卡。

2个回答

13

网络面板是一个HTML表示的HARHTTP Archive格式日志。您可以使用devtools.network API跟踪网络面板的每个元素。

您可以参考以下代码,其中TCP连接时间被跟踪作为使用devtools.network APIHAR日志入门的参考。

manifest.json

注册了devtools.html以跟踪网络面板事件。

{
    "name": "Network Demo",
    "description": "This is a sample for API's available for Network",
    "devtools_page": "devtools.html",
    "manifest_version": 2,
    "version": "2"
}

开发者工具.html

注册devtools.js以遵守CSP。

<html>

    <head>
        <script src="devtools.js"></script>
    </head>

    <body></body>

</html>

devtool.js

以下代码中的req返回HAR日志,您可以使用它来读取所需内容;我在这里使用了HAR来获取TCP连接时间

chrome.devtools.network.onRequestFinished.addListener(function(req) {
    // Displayed sample TCP connection time here
   console.log(req.timings.connect);
});

参考资料


是 "devtools.js" 而不是 "devtool.js"。无法编辑。 - thouger

2

如果开发者工具窗口未打开,则 devtools.network API 无法使用。在日常浏览中,无法访问响应数据。有一个功能请求正在进行中,其中讨论了读取/编辑响应正文的方法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接