web-dev-qa-db-ja.com

Chrome拡張機能-chrome.devtools.network以外の応答本文を読み取る方法はありますか?

Chrome拡張機能のパターンに一致するすべてのリクエストの応答本文を読み取りたい(変更しない)ようにします。現在使用しています chrome.devtools.network.onRequestFinished 、これはgetContent()メソッドを持つRequestオブジェクトを提供します。これは問題なく機能しますが、もちろん、拡張機能が機能するにはdevtoolsが開いている必要があります。理想的には拡張機能はポップアップになりますが、 chrome.webRequest.onCompleted は応答本文へのアクセスを許可していないようです。 機能要求 があり、webRequest APIにedit応答本文-しかし、webRequestはそれらを読み取ることもできますか?そうでない場合、devtools拡張機能の外部で応答本文を読み取る他の方法はありますか?

37
Josh

リンクした機能リクエスト これは、読み取りもサポートされていないことを意味します。

残念ながら、この要求は簡単ではありません。 (...)応答本文の読み取りについて:これは、パフォーマンスの観点からは困難です。 (...)全体として、これを達成するのは簡単ではありません...

したがって、いいえ、devtoolsを除いて、拡張機能がネットワーク応答本体にアクセスする方法はないようです。

6
rbp

これが私がしたことです

  1. chrome.webRequestrequestBodyを使用して投稿リクエストの本文を取得しました
  2. decoderを使用して本文を文字列に解析しました

これが例です

chrome.webRequest.onBeforeRequest.addListener(
    function(details) {
        if(details.method == "POST")
        // Use this to decode the body of your post
            var postedString = decodeURIComponent(String.fromCharCode.apply(null,
                                      new Uint8Array(details.requestBody.raw[0].bytes)));
           console.log(postedString)

    },
    {urls: ["<all_urls>"]},
    ["blocking", "requestBody"]
);
0
Taher Elsheikh