-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
-S, --show-error
When used with -s, --silent, it makes curl show an error message if it fails.
dan
-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 won’t 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. begitu
curl -sSL -D - www.acooke.org -o /dev/null
mengikuti arahan ulang, membuang header ke stdout dan mengirim data ke / dev / null (itu GET, bukan POST, tetapi Anda dapat melakukan hal yang sama dengan POST - cukup tambahkan opsi apa pun yang sudah Anda gunakan untuk data POSTing)
perhatikan tanda -
setelah -D
yang menunjukkan bahwa "file" output adalah stdout.
curl -s -D - http://yahoo.com -o nul
-D
mengambil argumen yang mengatakan ke mana output harus pergi. tanda tunggal berarti harus menuju stdout.Jawaban lain memerlukan badan tanggapan untuk diunduh. Tetapi ada cara untuk membuat permintaan POST yang hanya akan mengambil tajuk:
Sebuah
-I
dengan sendirinya melakukan permintaan HEAD yang dapat diganti dengan-X POST
melakukan POST (atau lainnya) permintaan dan masih hanya mendapatkan data sundulan.sumber
GET
permintaan dan tidak mengunduh seluruh badan tanggapan (atau setidaknya tidak mengeluarkannya). The-s
bendera dan tidak perlu.GET
denganPOST
perintah di atas dan itu akan berfungsi seperti yang diharapkan.or any other
adalah kunci di sana.POST
beberapa data. Curl mengatakan:Warning: You can only select one HTTP request method! You asked for both POST Warning: (-d, --data) and HEAD (-I, --head).
-X HEAD
tidak ada solusi yang dapat diandalkan di sini.Perintah berikut menampilkan informasi tambahan
Anda dapat meminta server untuk mengirim HEAD saja, alih-alih respons penuh
Note:
Dalam beberapa kasus, server dapat mengirim tajuk yang berbeda untuk dikirim dan KEPALA. Namun dalam hampir semua kasus, header sama.sumber
-X, --request
dengan benar,-X HEAD
masih menghasilkan "satu ton data" tetapi ada-I, --head
yang akan menghasilkan apa yang Anda harapkan.-X HEAD
dan-I
persis sama.-X HEAD
adalah bahwa server mungkin merespons secara berbeda, karena sekarang menerimaHEAD
permintaan alih-alihGET
(atau apa pun permintaan sebelumnya)Warning: Setting custom HTTP method to HEAD with -X/--request may not work the Warning: way you want. Consider using -I/--head instead.
Untuk badan respons panjang (dan berbagai situasi serupa lainnya), solusi yang saya gunakan adalah selalu menyalurkan ke
less
, jadiatau
akan melakukan pekerjaan itu.
sumber
HEAD
permintaan di mana banyak server merespons secara berbeda. yang kedua mengeluarkanGET
permintaan yang lebih seperti apa yang kita cari di sini.Mungkin ini sedikit ekstrim, tapi saya menggunakan versi super singkat ini:
Penjelasan:
-v
cetak informasi debug (termasuk header)-o.
mengirim data halaman web (yang ingin kita abaikan) ke file tertentu,.
dalam hal ini, yang merupakan direktori dan merupakan tujuan yang tidak valid dan membuat output diabaikan.-s
tidak ada bilah kemajuan, tidak ada informasi kesalahan (jika tidak Anda akan melihatWarning: Failed to create the file .: Is a directory
)peringatan: hasil selalu gagal (dalam hal kode kesalahan, jika dapat dijangkau atau tidak). Jangan gunakan dalam, katakanlah, pernyataan kondisional dalam skrip shell ...
sumber
-o.
bukan-o /dev/null
?-o.
digunakan versus-o /dev/null
untuk singkatnyacurl -svo. <url> && echo foo
tidak akan mencetakfoo
karena-o.
makecurl
mengembalikan (= error) kode-nol non:curl: (23) Failed writing body
.Jauh lebih mudah - inilah yang saya gunakan untuk menghindari pelacakan Shortlink - adalah sebagai berikut:
... yang juga mengikuti tautan .
sumber
Sementara jawaban lain tidak bekerja untuk saya dalam semua situasi, solusi terbaik yang dapat saya temukan (bekerja dengan
POST
baik), diambil dari sini :curl -vs 'https://some-site.com' 1> /dev/null
sumber
headcurl.cmd (versi windows)
-s
,-S
,-k
,-v
(ini tentang pemecahan masalah, bukan?),%*
berarti [serahkan semua parameter ke skrip ini] (well ( https://stackoverflow.com/a/980372/444255 ), well biasanya itu hanya satu parameter: url yang Anda ujicontoh dunia nyata (tentang pemecahan masalah proxy):
Versi Linux
untuk
.bash_aliases
/ Anda.bash_rc
:sumber
-X POST
ke parameter passthrough, jika Anda ingin GET, gunakan GET (yaitu default), karena respons mungkin berbeda. - Kecuali Anda melakukan curling berat pada skrip produksi (bukan untuk diagnosis dan pengembangan) Saya tidak peduli sedikit bandwidth.