在chrome devtools网络控制台中复制多个网络响应

时间:2019-09-03 04:02:33

标签: javascript google-chrome google-chrome-extension google-chrome-devtools

我想从Chrome的devtools下的“网络”标签中的过滤出的请求列表中复制所有网络响应。

我在Multiple URLs copy in Sources/Network tab上了解了复制所有请求的URL的解决方案 但是我不知道如何从请求中访问解码后的响应主体。

Chrome Devtools: Save specific requests in Network Tab处的解决方案有效,但是我想要一个仅从“网络”标签下的过滤后的请求列表中提取响应的解决方案。

1 个答案:

答案 0 :(得分:0)

检查devtools的源代码表明我们需要contentData() method

用法说明与Multiple URLs copy in Sources/Network tab中的用法相同。

(async () => {
  const getContent = r => r._url && !r._url.startsWith('data:') && r.contentData();
  const nodes = UI.panels.network._networkLogView._dataGrid._rootNode._flatNodes;
  const requests = nodes.map(n => n._request);
  const bowels = await Promise.all(requests.map(getContent));
  const looks = bowels.map((data, i) => {
    const r = requests[i];
    const url = r._url;
    const content = !data ? 'data is encoded inside the data url already, duh' :
      r.contentType().isTextType() ? data.content :
        Common.ContentProvider.contentAsDataURL(data.content, r.mimeType, data.encoded);
    return {url, content};
  });
  console.log(looks);
})();