"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment capturer les réponses d'en-tête HTTP dans une extension Chrome ?

Comment capturer les réponses d'en-tête HTTP dans une extension Chrome ?

Publié le 2024-11-26
Parcourir:190

How to Capture HTTP Header Responses in a Chrome Extension?

Capture des réponses d'en-tête HTTP dans une extension Chrome

Arrière-plan

Les extensions Chrome fournissent la fonctionnalité pour modifier les en-têtes des requêtes avant de les envoyer. Cependant, l'accès aux en-têtes de réponse n'est pas directement pris en charge par les API d'extension.

Solution : injection de script DOM

Une approche pour capturer les réponses HTTP consiste à injecter un script dans le DOM du site Web pour surveiller l'activité du réseau. Cette technique utilise le code suivant :

// 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);

Configuration du manifeste

Pour injecter le script, mettez à jour le manifest.json de l'extension comme suit :

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

Résultat

Cette solution permet à l'extension de capturer et d'enregistrer les en-têtes de demande et de réponse, permettant à l'extension de récupérer les en-têtes souhaités de la réponse.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3