Как получить тело ответа HTTP в расширениях Chrome
Получение тела ответа HTTP в фоновом сценарии расширения Chrome представляет собой сложную задачу. Хотя расширение может получить доступ к телу запроса с помощью chrome.webRequest.onBeforeRequest, получить тело ответа обычно невозможно.
Чтобы преодолеть это ограничение, творческий подход предполагает использование API chrome.debugger. Этот API позволяет расширениям выполнять отладку и взаимодействовать с сетевой активностью браузера. Вот подробная реализация:
// Attach to the current tab and enable network debugging.
chrome.tabs.query({ currentWindow: true, active: true }, tabs => {
chrome.debugger.attach({ tabId: tabs[0].id }, '1.0', debuggeeId => {
chrome.debugger.sendCommand({ tabId: debuggeeId.tabId }, 'Network.enable');
});
});
// Listen for response received events.
chrome.debugger.onEvent.addListener((debuggeeId, message, params) => {
if (debuggeeId.tabId !== currentTab.id) return;
if (message === 'Network.responseReceived') {
// Get the response body by sending a command.
chrome.debugger.sendCommand({ tabId: debuggeeId.tabId }, 'Network.getResponseBody', { requestId: params.requestId }, response => {
// The response body is now available.
// ... Process the response body ...
});
}
});
Этот метод позволяет получить тело ответа HTTP без необходимости использования дополнительных страниц браузера или сторонних служб. Обратите внимание, что по завершении сеанс отладки можно закрыть с помощью chrome.debugger.detach.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3