Hanya mendapatkan header respons dari HTTP POST menggunakan curl

Anda hanya dapat meminta header menggunakan HTTP HEAD sebagai opsi -I di curl(1) .

 $ curl -I / 

Tubuh panjang respons HTML sangat merepotkan untuk didapatkan pada baris perintah, jadi saya hanya ingin menerima header sebagai umpan balik untuk permintaan POST saya. Namun, KEPALA dan POST adalah dua metode yang berbeda.

Bagaimana cara mendapatkan ikal untuk hanya menampilkan header tanggapan terhadap permintaan POST?

454
08 апр. Ditetapkan oleh Jonathan Allard 08 Apr. 2012-04-08 06:12 '12 pada 6:12 2012-04-08 06:12
@ 7 jawaban
 -D, --dump-header <file> Write the protocol headers to the specified file. This option is handy to use when you want to store the headers that a HTTP site sends to you. Cookies from the headers could then be read in a second curl invocation by using the -b, --cookie option! The -c, --cookie-jar option is however a better way to store cookies. 

dan juga

 -S, --show-error When used with -s, --silent, it makes curl show an error message if it fails. 

dan juga

 -L/--location (HTTP/HTTPS) If the server reports that the requested page has moved to a different location (indicated with a Location: header and a 3XX response code), this option will make curl redo the request on the new place. If used together with -i/--include or -I/--head, headers from all requested pages will be shown. When authentication is used, curl only sends its credentials to the initial host. If a redirect takes curl to a different host, it wont be able to intercept the user+password. See also --location-trusted on how to change this. You can limit the amount of redirects to follow by using the --max-redirs option. When curl follows a redirect and the request is not a plain GET (for example POST or PUT), it will do the following request with a GET if the HTTP response was 301, 302, or 303. If the response code was any other 3xx code, curl will re-send the following request using the same unmodified method. 

dari halaman manual. jadi

 curl -sSL -D - www.acooke.org -o /dev/null 

harus diarahkan, membongkar header ke stdout dan mengirim data ke / dev / null (yang GET, bukan POST, tetapi Anda dapat melakukan hal yang sama dengan POST - cukup tambahkan semua parameter yang sudah Anda gunakan untuk data POSTing)

Perhatikan - setelah -D yang menunjukkan bahwa file output standar.

647
08 апр. balasan diberikan oleh andrew cooke 08 Apr. 2012-04-08 07:18 '12 pada 7:18 AM 2012-04-08 07:18

Respons lain mengharuskan badan respons dimuat. Tetapi ada cara untuk membuat permintaan POST yang hanya akan mengambil header:

 curl -s -I -X POST http://www.google.com 

-I sendiri mengeksekusi permintaan HEAD, yang dapat didefinisikan u>-X POST untuk menjalankan permintaan POST (atau lainnya) dan masih hanya menerima data header.

109
31 июля '16 в 3:12 2016-07-31 03:12 jawabannya diberikan siracusa 31 Juli '16 di 3:12 2016-07-31 03:12

Untuk badan respons panjang (dan situasi serupa lainnya), solusi yang saya gunakan selalu di ponsel less , jadi

 curl -i https://api.github.com/users | less 

atau

 curl -s -D - https://api.github.com/users | less 

akan melakukan pekerjaan itu.

42
05 нояб. jawabannya diberikan fiatjaf 05 Nov. 2014-11-05 16:44 '14 pada 16:44 2014-11-05 16:44

Perintah berikut menampilkan informasi tambahan.

 curl -X POST http://httpbin.org/post -vvv > /dev/null 

Anda dapat meminta server untuk mengirim HEAD saja, bukan jawaban lengkapnya.

 curl -X HEAD -I http://httpbin.org/ 

Note: Server web yang dikonfigurasi / diprogram dengan benar akan merespons secara berbeda dari pesan, karena ini adalah permintaan HEAD, bukan POST. Tapi itu berfungsi sebagian besar waktu.

37
09 мая '16 в 6:09 2016-05-09 06:09 jawabannya diberikan zainengineer 09 Mei '16 pukul 6:09 2016-05-09 06:09

Jauh lebih sederhana apa yang saya gunakan untuk menghindari pelacakan tautan pendek - ini adalah yang berikut:

 curl -IL http://bit.ly/in-the-shadows 

... yang juga mengikuti tautan.

15
11 марта '16 в 0:18 2016-03-11 00:18 balasan yang diberikan oleh kaiser pada 11 Maret '16 pada 0:18 2016-03-11 00:18

Sementara jawaban lain tidak bekerja untuk saya dalam semua situasi, solusi terbaik yang dapat saya temukan (bekerja dengan POST juga) diambil dari sini :

curl -vs 'https://some-site.com' 1>/dev/null

13
14 февр. Balas diberikan oleh Daniel AR Werner 14 Feb. 2016-02-14 12:23 '16 pada 12:23 AM 2016-02-14 12:23

Http Dapatkan cukup baik untuk mendapatkan hanya tajuk. Perintah berikut ini berfungsi untuk http GET:

 curl -I https://stackoverflow.com/ 
0
08 янв. Jawabannya adalah shifu.zheng 08 Jan 2019-01-08 11:00 '19 pada 11:00 2019-01-08 11:00

Pertanyaan lain tentang tag atau Ajukan pertanyaan