Cara Mendapatkan Kembali Badan Respons HTTP dalam Sambungan Chrome: Adakah Mungkin?

Susan Sarandon
Lepaskan: 2024-10-24 18:38:35
asal
229 orang telah melayarinya

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

Cara Mendapatkan Kembali Badan Respons HTTP dalam Sambungan Chrome

Mendapatkan semula badan respons HTTP dalam skrip latar belakang sambungan Chrome memberikan cabaran. Walaupun sambungan boleh mengakses badan permintaan menggunakan chrome.webRequest.onBeforeRequest, mendapatkan badan respons biasanya tidak mungkin.

Untuk mengatasi pengehadan ini, pendekatan kreatif melibatkan memanfaatkan API chrome.debugger. API ini membenarkan sambungan untuk nyahpepijat dan berinteraksi dengan aktiviti rangkaian penyemak imbas. Berikut ialah pelaksanaan terperinci:

  1. Tetapkan sambungan ke tab semasa menggunakan chrome.tabs.query dan chrome.debugger.attach.
  2. Dayakan penyahpepijatan rangkaian dengan menghantar arahan Network.enable ke tab.
  3. Daftarkan pendengar acara untuk acara Network.responseReceived.
  4. Apabila respons diterima, hantar perintah Network.getResponseBody yang menyatakan requestId daripada parameter acara.
  5. Badan respons akan dikembalikan melalui arahan, membolehkan anda memprosesnya mengikut keperluan.
<code class="javascript">// 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 ...
    });
  }
});</code>
Salin selepas log masuk

Kaedah ini membolehkan anda mendapatkan semula badan respons HTTP tanpa memerlukan halaman penyemak imbas tambahan atau perkhidmatan pihak ketiga. Harap maklum bahawa anda boleh menutup sesi penyahpepijatan menggunakan chrome.debugger.detach apabila anda selesai.

Atas ialah kandungan terperinci Cara Mendapatkan Kembali Badan Respons HTTP dalam Sambungan Chrome: Adakah Mungkin?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!