如何记录请求和响应正文,chrome API onCompleted
方法给出记录响应头。不打开开发者工具怎么办?
我正在开发一个Chrome扩展程序,我应该在其中捕获全部请求和响应。目前,对于响应,我能够单独捕获响应头,有没有办法捕获整个响应正文?我已经查看了所有的Chrome API,包括onComplete
方法,它提供了仅捕获响应头的选项。此外,我希望在不打开开发者工具的情况下捕获此响应正文。
function recordData() {
chrome.webRequest.onCompleted.addListener(function(recordStatus) {
console.log("Recording Data" + recordStatus);
}, {
urls: ["http://*/*", "https://*/*"]
}, ["responseHeaders"]);
}
2条答案
按热度按时间hmtdttj41#
我用一个简单的方法来控制它。基于请求和响应的字段
requestId
。创建一个全局Map,当事件请求头到达时,使用键
requestId
将其放入Map中。完成后记得将其从Map中删除,否则您的后台页面可能会崩溃为Out of Memory
。Chrome extensions - Other ways to read response bodies than chrome.devtools.network?
oxf4rvwz2#
您正在使用错误的webRequest。
onCompleted监听器在最后(这是最后一个)触发,所以它只在没有页面刷新的情况下监视“鬼鬼祟祟”的URL更改时有用,就像观看不同的U型管视频时发生的情况一样。
但是如果您想要的(我理解您)是捕获服务器和浏览器之间交换的Request和Response头,那么您必须使用这两个侦听器:
**NB:**在第一个监听器中,我只保存了有趣的部分,但是你总是可以使用一个循环来捕获 * 所有内容 *,就像下面的监听器一样。
捕获所有内容意味着重复用户代理和所有其他重复的无聊标题。
我知道我来晚了但也许有人需要这一切。