Comment récupérer le corps de réponse HTTP dans les extensions Chrome
Récupérer le corps de réponse HTTP dans un script d'arrière-plan d'extension Chrome présente un défi. Bien que l'extension puisse accéder au corps de la requête à l'aide de chrome.webRequest.onBeforeRequest, il n'est généralement pas possible d'obtenir le corps de la réponse.
Pour surmonter cette limitation, une approche créative consiste à exploiter l'API chrome.debugger. Cette API permet aux extensions de déboguer et d'interagir avec l'activité réseau du navigateur. Voici une implémentation détaillée :
<code class="javascript">// 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 ... }); } });</code>
Cette méthode vous permet de récupérer le corps de la réponse HTTP sans avoir besoin de pages de navigateur supplémentaires ou services tiers. Notez que vous pouvez fermer la session de débogage en utilisant chrome.debugger.detach lorsque vous avez terminé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!