首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何下载chrome.devtools.network.getHAR作为.har返回的对象?

如何下载chrome.devtools.network.getHAR作为.har返回的对象?
EN

Stack Overflow用户
提问于 2019-12-09 06:54:50
回答 1查看 1.7K关注 0票数 1

我正在使用chrome.devtools.network.getHAR从一个站点获取har日志。但是,我不知道如何将其转换为适当的.har文件并下载。我可以使用JSON.stringify(harLog),转换为BLOB,下载该文件,并将其视为JSON,但我希望能够从下载文件夹中下载该文件,并能够使用.har查看器(如铬网络选项卡)打开.har文件。

下面是我到目前为止所掌握的代码:

代码语言:javascript
运行
复制
chrome.devtools.network.getHAR(
        function (harLog) {

            let harBLOB = new Blob([harLog]);

            let url = URL.createObjectURL(harBLOB);

            chrome.downloads.download({
                url: url,
                filename: "test.har"
            });
        });

使用该代码,它将下载具有以下内容的文本文件;

代码语言:javascript
运行
复制
[object Object]

解决方案

在查看了从chrome工具生成的.har文件之后,我注意到它遵循以下格式

代码语言:javascript
运行
复制
{
  "log": {
    "version": "1.2",
    "creator": {
      ...
    },
  ...
}

而JSON.stringify(harLog)会给我

代码语言:javascript
运行
复制
{
  "version": "1.2",
    "creator": {
      ...
    },
  ...
}

在我将harLog对象分配给键:对象的日志并对其进行字符串化之后,我可以下载将文件导入到chrome网络选项卡中。

工作代码

代码语言:javascript
运行
复制
chrome.devtools.network.getHAR(
        function (harLog) {
            let updatedHarLog = {};
            updatedHarLog.log = harLog;

            let harBLOB = new Blob([JSON.stringify(updatedHarLog)]);

            let url = URL.createObjectURL(harBLOB);

            chrome.downloads.download({
                url: url,
                filename: "test"
            });
        }
    );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-09 07:58:26

首先,谢谢wOxxOmJSON.stringify()指导我朝着正确的方向前进

解决方案

在查看了从chrome工具生成的.har文件之后,我注意到它遵循以下格式

代码语言:javascript
运行
复制
{
  "log": {
    "version": "1.2",
    "creator": {
      ...
    },
  ...
}

而JSON.stringify(harLog)会给我

代码语言:javascript
运行
复制
{
  "version": "1.2",
    "creator": {
      ...
    },
  ...
}

在我将harLog对象分配给键:对象的日志并对其进行字符串化之后,我可以下载将文件导入到chrome网络选项卡中。

工作代码

代码语言:javascript
运行
复制
chrome.devtools.network.getHAR(
        function (harLog) {
            let updatedHarLog = {};
            updatedHarLog.log = harLog;

            let harBLOB = new Blob([JSON.stringify(updatedHarLog)]);

            let url = URL.createObjectURL(harBLOB);

            chrome.downloads.download({
                url: url,
                filename: "test"
            });
        }
    );
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59243885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档