Chrome 拡張機能内で HTTP 応答本文をキャプチャするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-25 03:42:02
オリジナル
191 人が閲覧しました

How do I capture HTTP response bodies within a Chrome extension?

Chrome 拡張機能で HTTP レスポンスボディをキャプチャする方法

概要:

Chrome 拡張機能HTTP リクエストに関する情報の取得は、ネットワーク トラフィックの分析や応答の変更など、多くのタスクに不可欠です。リクエストボディにアクセスするのは簡単ですが、レスポンスボディを取得するのはより困難です。

HTTP レスポンスボディの取得:

当初、Chrome 拡張機能からレスポンスボディに直接アクセスすることはほとんど不可能でした。不可能。ただし、解決策は、Chrome DevTools プロトコルの Network.getResponseBody API を利用することです。

Network.getResponseBody API の使用:

Network.getResponseBody API を使用して応答本文をキャプチャするには、次の手順に従います。

  1. デバッグを有効にする: chrome.debugger.attach() を使用して Chrome デバッガーを現在のタブに接続し、 Network.enable() コマンドを有効にします。
  2. 応答イベントをリッスン: 応答を受信するとトリガーされる Network.responseReceived イベントをサブスクライブします。
  3. 応答本文の取得: イベントを受信したら、応答の requestId を指定して Network.getResponseBody コマンドを送信し、その本文を取得します。

コード例:

<code class="javascript">chrome.tabs.query(
  { currentWindow: true, active: true },
  function (tabArray) {
    let currentTab = tabArray[0];
    chrome.debugger.attach(
      { tabId: currentTab.id },
      "1.0",
      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) {
        // Access the response body in 'response.body'
        // Close the debugger (optional)
        chrome.debugger.detach(debuggeeId);
      }
    );
  }
}</code>
ログイン後にコピー

注:

この API を含むデバッガー機能は、バックグラウンド スクリプトでのみ使用できます。この手法は、ページ コンテキスト内で実行される コンテンツ スクリプト では使用できません。

以上がChrome 拡張機能内で HTTP 応答本文をキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!