Saya mencari alat baris perintah yang mendengarkan pada bagian tertentu, dengan senang hati kecuali setiap permintaan HTTP POST dan mencampakkannya.
Saya ingin menggunakannya untuk tujuan pengujian, yaitu untuk menguji klien yang mengeluarkan permintaan HTTP POST.
Itu berarti saya mencari mitra untuk curl -F
(yang dapat saya gunakan untuk mengirim POST HTTP uji ke server HTTP).
Mungkin sesuatu seperti socat TCP4-LISTEN:80,fork,bind=127.0.0.1 ...
- tetapi socat tidak cukup karena tidak berbicara HTTP.
http
http-logging
maxschlepzig
sumber
sumber
netcat
(nc
pada beberapa sistem) dengan opsi-l
(dengarkan) dan-p
(nomor port).nc
untuk pengujian parsial - tetapi saya dapat melihat kelemahan berikut: 1) tidak mengirim kode status HTTP 2) Saya harus menekan Ctrl + D setelah saya melihat permintaan untuk menutup koneksi 3) tidak tahu bagaimana bereaksi setelah itu 'Harapkan: 100-lanjut' tajuk 4) ia tidak tahu bagaimana menangani tajuk 'Transfer-Encoding: chunked' - mungkin hanya menampilkan potongan kosong pertama (mungkin)Jawaban:
Alat-alat baris perintah inti sederhana seperti
nc
,socat
tampaknya tidak dapat menangani hal-hal HTTP spesifik yang terjadi (potongan, transfer encodings, dll.). Akibatnya ini dapat menghasilkan perilaku yang tidak terduga dibandingkan dengan berbicara dengan server web nyata. Jadi, pemikiran pertama saya adalah membagikan cara tercepat yang saya tahu tentang pengaturan server web kecil dan membuatnya hanya melakukan apa yang Anda inginkan: buang semua output.Terpendek yang bisa saya lakukan dengan menggunakan Python Tornado :
Ganti
pprint
baris untuk hanya output bidang spesifik yang Anda butuhkan, misalnyaself.request.body
atauself.request.headers
. Pada contoh di atas ia mendengarkan pada port 8080, pada semua antarmuka.Alternatif untuk ini banyak. web.py , Botol , dll.
(Saya cukup berorientasi Python, maaf)
Jika Anda tidak menyukai cara keluarannya, jalankan saja dan coba
tcpdump
seperti ini:untuk melihat dump mentah nyata semua permintaan HTTP-POST. Atau, jalankan Wireshark.
sumber
pprint.pprint(self.request.body)
. Catat,self.request.body
bukanself.body
. Sama untukself.request.headers
. Lihat tornado.readthedocs.org/en/latest/…Saya juga sedang mencari ini dan berlari ke server Node.js http-echo :
Itu menerima semua permintaan dan menggemakan permintaan penuh termasuk tajuk ke baris perintah.
sumber