我想从Chrome的devtools下的“网络”标签中的过滤出的请求列表中复制所有网络响应。
我在Multiple URLs copy in Sources/Network tab上了解了复制所有请求的URL的解决方案 但是我不知道如何从请求中访问解码后的响应主体。
Chrome Devtools: Save specific requests in Network Tab处的解决方案有效,但是我想要一个仅从“网络”标签下的过滤后的请求列表中提取响应的解决方案。
答案 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);
})();