Rumah > hujung hadapan web > tutorial js > Bagaimanakah Anda Boleh Mengakses Badan Respons HTTP dalam Sambungan Chrome?

Bagaimanakah Anda Boleh Mengakses Badan Respons HTTP dalam Sambungan Chrome?

Patricia Arquette
Lepaskan: 2024-10-25 09:21:02
asal
818 orang telah melayarinya

How Can You Access HTTP Response Bodies in Chrome Extensions?

Cara Menghurai Badan Respons HTTP dalam Sambungan Chrome

Dalam pembangunan penyemak imbas, mengakses badan respons HTTP boleh menimbulkan cabaran, terutamanya apabila bekerja dalam Skrip latar belakang sambungan Chrome. Walaupun mungkin untuk mengakses badan permintaan HTTP menggunakan acara 'chrome.webRequest.onBeforeRequest', mendapatkan semula badan tindak balas memerlukan pendekatan yang lebih rumit.

Satu penyelesaian yang berpotensi, seperti yang dinyatakan dalam urutan Stack Overflow yang dirujuk "Chrome sambungan untuk membaca respons HTTP," melibatkan penggunaan API 'chrome.devtools.network'. Dengan melampirkan penyahpepijat pada tab semasa dan mendayakan Rangkaian dalam penyahpepijat, ia menjadi mungkin untuk mendengar acara "Network.responseReceived". Apabila peristiwa ini dicetuskan, anda boleh menggunakan kaedah 'chrome.debugger.sendCommand' untuk mendapatkan semula badan respons untuk ID permintaan tertentu.

Berikut ialah contoh coretan yang menunjukkan pendekatan ini:

<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>
Salin selepas log masuk

Kaedah ini agak menyeluruh, menawarkan akses kepada kedua-dua pengepala respons dan badan respons itu sendiri. Walau bagaimanapun, ia melibatkan membuat sesi penyahpepijat dan melampirkannya pada tab semasa, yang mungkin memperkenalkan kerumitan tambahan atau pertimbangan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh Mengakses Badan Respons HTTP dalam Sambungan Chrome?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan