ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome 拡張機能内で HTTP 応答本文をキャプチャするにはどうすればよいですか?
Chrome 拡張機能で HTTP レスポンスボディをキャプチャする方法
概要:
Chrome 拡張機能HTTP リクエストに関する情報の取得は、ネットワーク トラフィックの分析や応答の変更など、多くのタスクに不可欠です。リクエストボディにアクセスするのは簡単ですが、レスポンスボディを取得するのはより困難です。
HTTP レスポンスボディの取得:
当初、Chrome 拡張機能からレスポンスボディに直接アクセスすることはほとんど不可能でした。不可能。ただし、解決策は、Chrome DevTools プロトコルの Network.getResponseBody API を利用することです。
Network.getResponseBody API の使用:
Network.getResponseBody API を使用して応答本文をキャプチャするには、次の手順に従います。
コード例:
<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 サイトの他の関連記事を参照してください。