「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Chrome 拡張機能で HTTP ヘッダー応答をキャプチャする方法

Chrome 拡張機能で HTTP ヘッダー応答をキャプチャする方法

2024 年 11 月 26 日に公開
ブラウズ:558

How to Capture HTTP Header Responses in a Chrome Extension?

Chrome 拡張機能での HTTP ヘッダー応答のキャプチャ

バックグラウンド

Chrome 拡張機能は次の機能を提供しますリクエストヘッダーを送信する前に変更します。ただし、応答ヘッダーへのアクセスは、拡張 API では直接サポートされていません。

解決策: DOM スクリプト インジェクション

HTTP 応答をキャプチャする 1 つの方法は、スクリプトをWeb サイトの DOM を使用してネットワークアクティビティを監視します。この手法では、次のコードを使用します:

// Background script: inject.js
var s = document.createElement('script');
s.src = chrome.runtime.getURL('injected.js');
s.onload = function() {
    this.remove();
};
(document.head || document.documentElement).appendChild(s);

// Content script: injected.js
(function(xhr) {

    // Override XMLHttpRequest methods
    var XHR = XMLHttpRequest.prototype;

    ['open', 'setRequestHeader', 'send'].forEach(function(method) {
        var originalMethod = XHR[method];

        XHR[method] = function() {
            // Intercept events and capture request and response headers
            ...
        };
    });

})(XMLHttpRequest);

マニフェスト構成

スクリプトを挿入するには、拡張機能の manifest.json を次のように更新します:

"content_scripts": [{
    "matches": ["*://website.com/*"],
    "run_at": "document_start",
    "js": ["contentscript.js", "inject.js"]
}],
"web_accessible_resources": [{
    "resources": ["injected.js"],
    "matches": ["*://website.com/*"]
}]

Result

このソリューションにより、拡張機能は要求ヘッダーと応答ヘッダーの両方をキャプチャしてログに記録できるようになり、拡張機能が応答から目的のヘッダーを取得できるようになります。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3