Heim >Web-Frontend >js-Tutorial >Wie können Sie in Chrome-Erweiterungen auf HTTP-Antworttexte zugreifen?

Wie können Sie in Chrome-Erweiterungen auf HTTP-Antworttexte zugreifen?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-25 09:21:02808Durchsuche

How Can You Access HTTP Response Bodies in Chrome Extensions?

So entschlüsseln Sie HTTP-Antwortkörper in Chrome-Erweiterungen

Bei der Browserentwicklung kann der Zugriff auf HTTP-Antwortkörper eine Herausforderung darstellen, insbesondere wenn Sie darin arbeiten Hintergrundskripte für die Chrome-Erweiterung. Während es möglich ist, über das Ereignis „chrome.webRequest.onBeforeRequest“ auf den HTTP-Anforderungstext zuzugreifen, erfordert das Abrufen des Antworttexts einen komplexeren Ansatz.

Eine mögliche Lösung, wie im referenzierten Stack Overflow-Thread „Chrome“ erwähnt „Erweiterung zum Lesen von HTTP-Antworten“ erfordert die Verwendung der API „chrome.devtools.network“. Durch Anhängen eines Debuggers an die aktuelle Registerkarte und Aktivieren des Netzwerks im Debugger wird es möglich, auf das Ereignis „Network.responseReceived“ zu warten. Wenn dieses Ereignis ausgelöst wird, können Sie die Methode „chrome.debugger.sendCommand“ verwenden, um den Antworttext für eine bestimmte Anforderungs-ID abzurufen.

Hier ist ein Beispielausschnitt, der diesen Ansatz demonstriert:

<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>

Diese Methode ist ziemlich umfassend und bietet Zugriff sowohl auf die Antwortheader als auch auf den Antworttext selbst. Dazu ist jedoch das Erstellen einer Debugger-Sitzung und deren Anhängen an die aktuelle Registerkarte erforderlich, was zu zusätzlichen Komplexitäts- oder Leistungsaspekten führen kann.

Das obige ist der detaillierte Inhalt vonWie können Sie in Chrome-Erweiterungen auf HTTP-Antworttexte zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn