Chrome Extension - How to get HTTP Response Body?

后端 未结 3 916
栀梦
栀梦 2020-11-28 05:39

It seems to be difficult problem (or impossible??). I want to get and read HTTP Response, caused by HTTP Request in browser, under watching Chrome Extension background scrip

3条回答
  •  余生分开走
    2020-11-28 06:23

    I can't find better way then this anwser.

    Chrome extension to read HTTP response

    The answer told how to get response headers and display in another page.But there is no body info in the response obj(see event-responseReceived). If you want to get response body without another page, try this.

    var currentTab;
    var version = "1.0";
    
    chrome.tabs.query( //get current Tab
        {
            currentWindow: true,
            active: true
        },
        function(tabArray) {
            currentTab = tabArray[0];
            chrome.debugger.attach({ //debug at current tab
                tabId: currentTab.id
            }, version, onAttach.bind(null, currentTab.id));
        }
    )
    
    
    function onAttach(tabId) {
    
        chrome.debugger.sendCommand({ //first enable the Network
            tabId: tabId
        }, "Network.enable");
    
        chrome.debugger.onEvent.addListener(allEventHandler);
    
    }
    
    
    function allEventHandler(debuggeeId, message, params) {
    
        if (currentTab.id != debuggeeId.tabId) {
            return;
        }
    
        if (message == "Network.responseReceived") { //response return 
            chrome.debugger.sendCommand({
                tabId: debuggeeId.tabId
            }, "Network.getResponseBody", {
                "requestId": params.requestId
            }, function(response) {
                // you get the response body here!
                // you can close the debugger tips by:
                chrome.debugger.detach(debuggeeId);
            });
        }
    
    }
    

    I think it's useful enough for me and you can use chrome.debugger.detach(debuggeeId)to close the ugly tip.

    sorry, mabye not helpful... ^ ^

提交回复
热议问题