Je suis à la recherche d'un outil en ligne de commande qui écoute une partie donnée, exclut heureusement chaque requête HTTP POST et la vide.
Je veux l'utiliser à des fins de test, c'est-à-dire pour tester des clients qui émettent des requêtes HTTP POST.
Cela signifie que je recherche l'homologue curl -F
(que je peux utiliser pour envoyer des tests HTTP POST à un serveur HTTP).
Peut-être quelque chose comme socat TCP4-LISTEN:80,fork,bind=127.0.0.1 ...
- mais socat ne suffit pas car il ne parle pas HTTP.
http
http-logging
maxschlepzig
la source
la source
netcat
(nc
sur certains systèmes) avec les options-l
(écouter) et-p
(numéro de port).nc
pour des tests partiels - mais je peux voir les inconvénients suivants: 1) il n'envoie pas de code d'état HTTP 2) je dois appuyer sur Ctrl + D après avoir vu la demande de fermeture de la connexion 3) il ne sait pas comment réagir lors de l'en-tête 'Expect: 100-continue' 4) il ne sait pas comment gérer l'en-tête 'Transfer-Encoding: chunked' - il n'affiche probablement que le premier (probablement) bloc videRéponses:
Les outils de ligne de commande simples comme
nc
,socat
semblent ne pas être en mesure de gérer les choses HTTP spécifiques en cours (morceaux, encodages de transfert, etc.). Par conséquent, cela peut produire un comportement inattendu par rapport à une conversation avec un vrai serveur Web. Donc, ma première pensée est de partager la façon la plus rapide que je connaisse de configurer un petit serveur Web et de le faire faire ce que vous voulez: vider toutes les sorties.Le plus court que j'ai pu trouver avec Python Tornado :
Remplacez la
pprint
ligne pour afficher uniquement les champs spécifiques dont vous avez besoin, par exempleself.request.body
ouself.request.headers
. Dans l'exemple ci-dessus, il écoute sur le port 8080, sur toutes les interfaces.Les alternatives à cela sont nombreuses. web.py , bouteille , etc.
(Je suis plutôt orienté Python, désolé)
Si vous n'aimez pas sa façon de produire, lancez-le quand même et essayez
tcpdump
comme ceci:pour voir un vrai vidage brut de toutes les requêtes HTTP-POST. Sinon, exécutez simplement Wireshark.
la source
pprint.pprint(self.request.body)
. Notezself.request.body
plutôt queself.body
. Pareil pourself.request.headers
. Voir tornado.readthedocs.org/en/latest/…Je le cherchais moi aussi et je suis tombé sur le serveur http-echo de Node.js :
Il accepte toutes les demandes et renvoie la demande complète, y compris l'en-tête à la ligne de commande.
la source