首頁 > web前端 > js教程 > 主體

如何在 Chrome 擴充功能中檢索 HTTP 回應正文:可能嗎?

Susan Sarandon
發布: 2024-10-24 18:38:35
原創
229 人瀏覽過

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

如何在 Chrome 擴充功能中擷取 HTTP 回應正文

在 Chrome 擴充功能後台腳本中擷取 HTTP 回應正文是一項挑戰。雖然擴充功能可以使用 chrome.webRequest.onBeforeRequest 存取請求正文,但通常無法取得回應正文。

為了克服此限制,一種創意的方法涉及利用 chrome.debugger API。此 API 允許擴充功能調試瀏覽器的網路活動並與之互動。以下是詳細實作:

  1. 使用 chrome.tabs.query 和 chrome.debugger.attach 建立與目前標籤的連線。
  2. 透過發送 Network.enable 指令啟用網路偵錯到選項卡。
  3. 為 Network.responseReceived 事件註冊事件偵聽器。
  4. 收到回應後,發送 Network.getResponseBody 指令,並從事件參數指定 requestId。
  5. 回應正文將由命令傳回,讓您可以根據需要進行處理。
<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>
登入後複製

此方法可讓您檢索 HTTP 回應正文,而不需要額外的瀏覽器頁面或第三方服務。請注意,完成後您可以使用 chrome.debugger.detach 關閉偵錯會話。

以上是如何在 Chrome 擴充功能中檢索 HTTP 回應正文:可能嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!