Cómo recuperar el cuerpo de respuesta HTTP en extensiones de Chrome
Recuperar el cuerpo de respuesta HTTP dentro de una secuencia de comandos en segundo plano de una extensión de Chrome presenta un desafío. Si bien la extensión puede acceder al cuerpo de la solicitud mediante chrome.webRequest.onBeforeRequest, normalmente no es posible obtener el cuerpo de la respuesta.
Para superar esta limitación, un enfoque creativo implica aprovechar la API chrome.debugger. Esta API permite que las extensiones depuren e interactúen con la actividad de red del navegador. Aquí hay una implementación detallada:
// 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 ...
});
}
});
Este método le permite recuperar el cuerpo de la respuesta HTTP sin la necesidad de páginas de navegador adicionales o servicios de terceros. Tenga en cuenta que puede cerrar la sesión de depuración usando chrome.debugger.detach cuando haya terminado.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3