Lors de l'exploration d'un site, il peut être utile de sauvegarder le contenu d'une réponse à une requête HTTP. Le débogueur de Firefox apparaît alors comme l'outil tout indiqué. De fait, non seulement il se trouve immédiatement à disposition, mais il est de plus véritablement bien conçu. Entre autres, il comprend un moniteur Réseau qui permet de visualiser l'intégralité des requêtes formulées par le navigateur et les réponses reçues en retour.
Toutefois, le contenu de la réponse qu'il s'agit de sauvegarder peut consister non pas en texte, mais en binaire. Dans ces conditions, les fonctionnalités du moniteur Réseau ne sont pas suffisantes. En effet, s'il permet bien de consulter la réponse, il affiche cette dernière sous forme de texte, après donc une conversion des octets de la réponse qu'il est impossible de renverser.
Pas de panique, il existe des moyens pour s'en sortir !
Récupérer le binaire d'une réponse d'une requête qui peut être rejouée
Dans ce cas, le plus simple est de rejouer la requête dans la console. Il faut cliquer du bouton droit sur la requête, et sélectionner Utiliser en tant que requête Fetch dans la console :
Firefox génère le code d'un appel asynchrone à
fetch ()
:
Il suffit de modifier légèrement ce code en faisant sauter
async
au début et en complètant la promesse qui est retournée par fetch ()
:
fetch ( ... ).then (response => response.blob ()).then (data => data.arrayBuffer ().then (result => console.log (Array.from (new Uint8Array (result)).map (b => b.toString (16).padStart (2, '0')).join (' '))));