Szukam narzędzia wiersza polecenia, które nasłuchuje na danej części, na szczęście z wyjątkiem każdego żądania HTTP POST i zrzuca je.
Chcę go używać do celów testowych, tj. Do testowania klientów, którzy wysyłają żądania HTTP POST.
Oznacza to, że szukam odpowiednika curl -F
(którego mogę użyć do wysłania testowych testów POST HTTP na serwer HTTP).
Być może coś takiego socat TCP4-LISTEN:80,fork,bind=127.0.0.1 ...
- ale socat to za mało, ponieważ nie mówi HTTP.
http
http-logging
maxschlepzig
źródło
źródło
netcat
(nc
w niektórych systemach) z opcjami-l
(nasłuchuj) i-p
(numer portu).nc
do częściowego testowania - ale widzę następujące wady: 1) nie wysyła kodu stanu HTTP 2) muszę nacisnąć Ctrl + D po tym, jak widzę prośbę o zamknięcie połączenia 3) nie wie jak zareagować na nagłówek „Oczekuj: 100-kontynuuj” 4) nie wie, jak obsługiwać nagłówek „Transfer-Kodowanie:Odpowiedzi:
Proste podstawowe narzędzia wiersza poleceń, takie jak
nc
,socat
wydają się nie być w stanie obsłużyć określonych rzeczy HTTP (fragmenty, kodowanie przesyłania itp.). W rezultacie może to spowodować nieoczekiwane zachowanie w porównaniu do rozmowy z prawdziwym serwerem internetowym. Tak więc, moją pierwszą myślą jest udostępnienie najszybszego znanego mi sposobu skonfigurowania małego serwera WWW i zrobienia tego, co chcesz: zrzuć wszystkie dane wyjściowe.Najkrótszy, jaki mogłem wymyślić używając Python Tornado :
Zamień
pprint
wiersz, aby wyświetlać tylko te pola, których potrzebujesz, na przykładself.request.body
lubself.request.headers
. W powyższym przykładzie nasłuchuje na porcie 8080 na wszystkich interfejsach.Istnieje wiele alternatyw. web.py , butelka itp.
(Przepraszam, jestem dość zorientowany na Pythona)
Jeśli nie podoba ci się sposób wyświetlania, po prostu uruchom go mimo to i spróbuj
tcpdump
:aby zobaczyć prawdziwy zrzut wszystkich żądań HTTP-POST. Możesz też uruchomić Wireshark.
źródło
pprint.pprint(self.request.body)
. Uwagaself.request.body
zamiastself.body
. To samo dotyczyself.request.headers
. Zobacz tornado.readthedocs.org/en/latest/...Ja również tego szukałem i wpadłem na serwer http-echo Node.js :
Akceptuje wszystkie żądania i wyświetla pełne echo pełnego żądania wraz z nagłówkiem do wiersza poleceń.
źródło