Je dois tester une interaction HTTP avec un client que je préfère ne pas modifier. Ce que j'ai besoin de tester, c'est le comportement du serveur lorsque les demandes du client incluent un certain en-tête statique.
Je pense que le moyen le plus simple d’exécuter ce test consiste à configurer un proxy HTTP qui insère l’en-tête à chaque demande. Quel serait le moyen le plus simple de le configurer?
Je fais quelque chose comme cela dans mon environnement de développement en configurant Apache sur le port 80 en tant que proxy pour mon serveur d'applications sur le port 8080, avec la configuration Apache suivante:
NameVirtualHost *
<VirtualHost *>
<Proxy http://127.0.0.1:8080/*>
Allow from all
</Proxy>
<LocationMatch "/myapp">
ProxyPass http://127.0.0.1:8080/myapp
ProxyPassReverse http://127.0.0.1:8080/myapp
Header add myheader "myvalue"
RequestHeader set myheader "myvalue"
</LocationMatch>
</VirtualHost>
Voir LocationMatch et RequestHeader documentation.
Cela ajoute l’en-tête myheader: myvalue aux demandes adressées au serveur d’applications.
Vous pouvez également installer Fiddler ( http://www.fiddler2.com/fiddler2/ ) qui est très facile à installer (plus facile qu’Apache par exemple).
Après l'avoir lancé, il s'enregistrera comme proxy système. Ouvrez ensuite le menu "Règles" et choisissez "Personnaliser les règles ..." pour ouvrir un fichier JScript permettant de personnaliser les demandes.
Pour ajouter un en-tête personnalisé, ajoutez simplement une ligne dans la fonction OnBeforeRequest
:
oSession.oRequest.headers.Add("MyHeader", "MyValue");
je voudrais essayer tinyproxy . En fait, le mieux serait d’y intégrer un langage de script ... Cela semble être un travail parfait pour Lua , surtout après avoir constaté son efficacité pour mysqlproxy
Utilisez http://www.proxomitron.info et configurez l’en-tête souhaité, etc.
Si vous avez Ruby sur votre système, que diriez-vous d’un petit proxy Ruby utilisant Sinatra (assurez-vous d’installer le Sinatra Gem). Cela devrait être plus facile que de configurer Apache. Le code peut être trouvé ici.
Plutôt que d'utiliser un proxy, j'utilise le plugin Firefox "Modify Headers" pour insérer des en-têtes (dans mon cas, simuler une connexion à l'aide de Single Sign On afin que je puisse tester différentes personnes).