Comment déchiffrer les corps de réponse HTTP dans les extensions Chrome
Dans le développement de navigateurs, l'accès aux corps de réponse HTTP peut poser un défi, en particulier lorsque vous travaillez dans Scripts d'arrière-plan de l'extension Chrome. Bien qu'il soit possible d'accéder au corps de la requête HTTP à l'aide de l'événement « chrome.webRequest.onBeforeRequest », la récupération du corps de la réponse nécessite une approche plus complexe.
Une solution potentielle, comme mentionné dans le fil de discussion Stack Overflow référencé « Chrome pour lire la réponse HTTP", implique l'utilisation de l'API "chrome.devtools.network". En attachant un débogueur à l'onglet actuel et en activant le réseau dans le débogueur, il devient possible d'écouter l'événement « Network.responseReceived ». Lorsque cet événement est déclenché, vous pouvez utiliser la méthode « chrome.debugger.sendCommand » pour récupérer le corps de la réponse pour un ID de requête spécifique.
Voici un exemple d'extrait illustrant cette approche :
<code class="javascript">var currentTab; var version = "1.0"; chrome.tabs.query( { currentWindow: true, active: true }, function(tabArray) { currentTab = tabArray[0]; chrome.debugger.attach({ tabId: currentTab.id }, version, 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) { // You get the response body here! // You can close the debugger tips by: chrome.debugger.detach(debuggeeId); }); } }</code>
Cette méthode est assez complète, offrant un accès à la fois aux en-têtes de réponse et au corps de la réponse lui-même. Cependant, cela implique de créer une session de débogueur et de l'attacher à l'onglet actuel, ce qui peut introduire des problèmes de complexité ou de performances supplémentaires.
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!