„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > So rufen Sie den HTTP-Antworttext in Chrome-Erweiterungen ab: Ist das möglich?

So rufen Sie den HTTP-Antworttext in Chrome-Erweiterungen ab: Ist das möglich?

Veröffentlicht am 08.11.2024
Durchsuche:395

How to Retrieve HTTP Response Body in Chrome Extensions:  Is it Possible?

So rufen Sie den HTTP-Antworttext in Chrome-Erweiterungen ab

Das Abrufen des HTTP-Antworttexts innerhalb eines Hintergrundskripts für eine Chrome-Erweiterung stellt eine Herausforderung dar. Während die Erweiterung über chrome.webRequest.onBeforeRequest auf den Anforderungstext zugreifen kann, ist es normalerweise nicht möglich, den Antworttext abzurufen.

Um diese Einschränkung zu überwinden, besteht ein kreativer Ansatz darin, die chrome.debugger-API zu nutzen. Diese API ermöglicht Erweiterungen das Debuggen und die Interaktion mit der Netzwerkaktivität des Browsers. Hier ist eine detaillierte Implementierung:

  1. Stellen Sie mithilfe von chrome.tabs.query und chrome.debugger.attach eine Verbindung zum aktuellen Tab her.
  2. Aktivieren Sie das Netzwerk-Debugging, indem Sie den Befehl Network.enable senden zur Registerkarte.
  3. Registrieren Sie einen Ereignis-Listener für Network.responseReceived-Ereignisse.
  4. Wenn eine Antwort empfangen wird, senden Sie den Befehl Network.getResponseBody und geben Sie dabei die requestId aus den Ereignisparametern an.
  5. Der Antworttext wird vom Befehl zurückgegeben, sodass Sie ihn nach Bedarf verarbeiten können.
// 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 ...
    });
  }
});

Mit dieser Methode können Sie den HTTP-Antworttext abrufen, ohne dass zusätzliche Browserseiten oder Dienste von Drittanbietern erforderlich sind. Beachten Sie, dass Sie die Debugsitzung mit chrome.debugger.detach schließen können, wenn Sie fertig sind.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729758196 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3