Chrome 拡張機能で HTTP レスポンスボディを解読する方法
ブラウザ開発では、HTTP レスポンスボディへのアクセスは、特に内部で作業する場合に課題となる可能性があります。 Chrome 拡張機能のバックグラウンド スクリプト。 「chrome.webRequest.onBeforeRequest」イベントを使用して HTTP リクエスト本文にアクセスすることは可能ですが、レスポンス本文を取得するには、より複雑なアプローチが必要です。
参照されているスタック オーバーフロー スレッド「Chrome」で説明されている、考えられる解決策の 1 つHTTP 応答を読み取るための拡張機能」には、「chrome.devtools.network」API の利用が含まれます。現在のタブにデバッガーをアタッチし、デバッガー内でネットワークを有効にすると、「Network.responseReceived」イベントをリッスンできるようになります。このイベントがトリガーされると、「chrome.debugger.sendCommand」メソッドを使用して、特定のリクエスト ID の応答本文を取得できます。
このアプローチを示すスニペットの例を次に示します。
<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>
このメソッドはかなり包括的で、応答ヘッダーと応答本文自体の両方へのアクセスを提供します。ただし、デバッガー セッションの作成と現在のタブへのアタッチが必要となるため、さらに複雑さやパフォーマンスに関する考慮事項が発生する可能性があります。
以上がChrome 拡張機能で HTTP レスポンスボディにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。