Comment capturer les corps de réponse HTTP dans les extensions Chrome
Introduction :
Dans les extensions Chrome , l'obtention d'informations sur les requêtes HTTP est essentielle pour de nombreuses tâches, telles que l'analyse du trafic réseau ou la modification des réponses. Bien qu'il soit simple d'accéder aux corps de requête, la récupération des corps de réponse pose un plus grand défi.
Obtention des corps de réponse HTTP :
Au départ, accéder aux corps de réponse directement à partir des extensions Chrome était presque impossible. impossible. Cependant, la solution réside désormais dans l'utilisation de l'API Network.getResponseBody du protocole Chrome DevTools.
Utilisation de l'API Network.getResponseBody :
Pour capturer les corps de réponse à l'aide de l'API Network.getResponseBody, procédez comme suit :
Exemple de code :
<code class="javascript">chrome.tabs.query( { currentWindow: true, active: true }, function (tabArray) { let currentTab = tabArray[0]; chrome.debugger.attach( { tabId: currentTab.id }, "1.0", onAttach.bind(null, currentTab.id) ); } ); function onAttach(tabId) { chrome.debugger.sendCommand({ tabId: tabId }, "Network.enable"); chrome.debugger.onEvent.addListener(allEventHandler); } function allEventHandler(debuggeeId, message, params) { if (currentTab.id != debuggeeId.tabId) { return; } if (message == "Network.responseReceived") { chrome.debugger.sendCommand( { tabId: debuggeeId.tabId }, "Network.getResponseBody", { requestId: params.requestId }, function (response) { // Access the response body in 'response.body' // Close the debugger (optional) chrome.debugger.detach(debuggeeId); } ); } }</code>
Remarque :
La fonctionnalité du débogueur, y compris cette API, n'est disponible que dans les scripts d'arrière-plan. Vous ne pouvez pas utiliser cette technique dans les scripts de contenu, qui s'exécutent dans des contextes de page.
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!