Google chrome extension Chrome extensions-除了Chrome.devtools.network之外,还有其他读取响应主体的方法吗?

Google chrome extension Chrome extensions-除了Chrome.devtools.network之外,还有其他读取响应主体的方法吗?,google-chrome-extension,google-chrome-devtools,Google Chrome Extension,Google Chrome Devtools,我想阅读(而不是修改)所有符合Chrome扩展中某些模式的请求的响应正文。我目前正在使用,它提供了一个带有getContent()方法的Request对象。这工作得很好,但是当然需要打开devtools才能让扩展工作。理想情况下,扩展应该是一个弹出窗口,但似乎不允许访问响应主体。允许WebRequestAPI编辑响应主体有一个简单的方法,但是webRequest甚至可以读取它们吗?如果没有,是否有其他方法可以读取devtools扩展之外的响应正文?如果您有此请求模式,则可以在background

我想阅读(而不是修改)所有符合Chrome扩展中某些模式的请求的响应正文。我目前正在使用,它提供了一个带有
getContent()
方法的
Request
对象。这工作得很好,但是当然需要打开devtools才能让扩展工作。理想情况下,扩展应该是一个弹出窗口,但似乎不允许访问响应主体。允许WebRequestAPI编辑响应主体有一个简单的方法,但是webRequest甚至可以读取它们吗?如果没有,是否有其他方法可以读取devtools扩展之外的响应正文?

如果您有此请求模式,则可以在background.html文件中运行类似的内容:

to表示不支持阅读:

不幸的是,这一要求并非微不足道。(…)关于阅读回复正文:从性能角度来看,这是一个挑战。(…)所以总的来说,这是不容易实现的

所以,不,除了devtools之外,似乎没有一种扩展访问网络响应机构的方法。

我就是这么做的

  • 我使用
    chrome.webRequest
    requestBody
    获取post请求正文
  • 我使用了
    解码器
    将主体解析为字符串
  • 这里有一个例子

    chrome.webRequest.onBeforeRequest.addListener(
    功能(详情){
    如果(details.method==“POST”)
    //用这个来解码你文章的正文
    var postedString=decodeURIComponent(String.fromCharCode.apply)(null,
    新的Uint8Array(details.requestBody.raw[0].bytes));
    console.log(postedString)
    },
    {URL:[“”]},
    [“阻止”,“请求主体”]
    );
    
    这只是说明如何提出请求。OP询问如何监控浏览器发出的任何请求的响应主体。AFAIK chrome.devtools.network.onRequestFinished仍然是获取主体的唯一方法,需要打开调试器。问题是关于响应主体,而不是请求主体。
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "http://example.com/" + yourStringForPattern, true);
        xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
          var body = xhr.responseText;
          // call some function to do something with the html body
    
        }
       }
       xhr.send();