Dengan libcurl, gunakan curl_formadd()fungsi untuk membangun formulir Anda sebelum mengirimkannya dengan cara biasa. Lihat dokumentasi libcurl untuk informasi lebih lanjut.
Untuk file besar, pertimbangkan untuk menambahkan parameter untuk menunjukkan kemajuan unggahan:
@ tom-wijsman penjelasan: curl -X POSTmenyiratkan permintaan HTTP POST, -dparameter (versi lama :) --datamemberi tahu curl bahwa yang berikut ini akan menjadi parameter POST, dan @filenamemenetapkan konten file filenamesebagai parameter. Pendekatan ini bekerja paling baik dengan API HTTP yang tenang seperti yang ditemukan di Twitter, Facebook, berbagai layanan web lainnya termasuk Ruby on Rails serta HTTP APIs dari basis data seperti CouchDB. REST adalah singkatan dari Representational State Transfer
Soundmonster
1
Bagaimana kita dapat melihat respons xml tidak dalam satu baris tetapi diformat?
Vitaly Zdanevich
6
Saya pikir Anda dapat meninggalkan -X POSTsejak itu tersirat oleh -d.
Permintaan pertama menyimpan cookie sesi (yang disediakan setelah login berhasil) dalam file "header". Mulai sekarang, Anda dapat menggunakan cookie itu untuk mengautentikasi Anda ke bagian mana pun dari situs web yang biasanya Anda akses setelah masuk dengan browser.
Jika Anda malas, Anda bisa mendapatkan google-chrome untuk melakukan semua pekerjaan untuk Anda.
Klik kanan formulir yang ingin Anda kirim dan pilih Periksa . Ini akan membuka panel DevTools.
Pilih tab Network di devtools dan centang kotak Preserve log .
Kirim formulir dan temukan entri dengan metode POST (klik kanan pada tajuk kolom apa pun dan pastikan Metode dicentang).
Klik kanan baris dengan POST, dan pilih Salin > Salin sebagai cURL .
Chrome akan menyalin semua data permintaan dalam sintaks CURL.
Penggunaan Chrome --data 'param1=hello¶m2=world'yang Anda dapat membuatnya lebih mudah dibaca dengan menggunakan satu -datau -Fper parameter tergantung pada jenis permintaan POST mana yang ingin Anda kirim, yang dapat berupa application/x-www-form-urlencodedatau multipart/form-datasesuai.
Ini akan POST-ed as application/x-www-form-urlencoded( digunakan untuk sebagian besar formulir yang tidak mengandung unggahan file ):
Untuk multipart/form-datapenggunaan POST -F( biasanya digunakan dengan formulir yang berisi unggahan file, atau urutan bidang yang penting, atau jika diperlukan beberapa bidang dengan nama yang sama ):
The User-Agentheader biasanya tidak diperlukan, tapi aku sudah dilemparkan itu hanya dalam kasus. Anda dapat menghindari keharusan mengatur agen pengguna pada setiap permintaan dengan membuat ~/.curlrcfile yang berisi misUser-Agent: "Mozilla/2.2"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data
Jawaban:
Dengan bidang:
Dengan bidang yang ditentukan secara individual:
Multipart:
Multipart dengan bidang dan nama file:
Tanpa data:
Untuk informasi lebih lanjut, lihat manual CURL . The Curl tutorial tentang meniru web browser membantu.
Dengan libcurl, gunakan
curl_formadd()
fungsi untuk membangun formulir Anda sebelum mengirimkannya dengan cara biasa. Lihat dokumentasi libcurl untuk informasi lebih lanjut.Untuk file besar, pertimbangkan untuk menambahkan parameter untuk menunjukkan kemajuan unggahan:
The
-o output
diperlukan, jika tidak ada progress bar akan muncul.sumber
--data-urlencode
(tanpa tanda hubung), dalam versi terbaru setidaknyaWith Fields
, kapan denganMultipart
dan kapanWithout Data
?--data
bisa Anda gunakan-d
.Untuk POST HTTP TENANG yang berisi XML:
atau untuk JSON, gunakan ini:
Ini akan membaca isi file yang bernama
filename.txt
dan mengirimkannya sebagai permintaan posting.sumber
curl -X POST
menyiratkan permintaan HTTP POST,-d
parameter (versi lama :)--data
memberi tahu curl bahwa yang berikut ini akan menjadi parameter POST, dan@filename
menetapkan konten filefilename
sebagai parameter. Pendekatan ini bekerja paling baik dengan API HTTP yang tenang seperti yang ditemukan di Twitter, Facebook, berbagai layanan web lainnya termasuk Ruby on Rails serta HTTP APIs dari basis data seperti CouchDB. REST adalah singkatan dari Representational State Transfer-X POST
sejak itu tersirat oleh-d
.Data dari stdin dengan
-d @-
Contoh:
Keluaran:
sumber
adalah contoh yang ditemukan dalam Curl Example Manual .
Gunakan% 26 untuk ampersand meskipun jika di atas tidak berfungsi:
sumber
Jika Anda ingin masuk ke situs, lakukan hal berikut:
Permintaan pertama menyimpan cookie sesi (yang disediakan setelah login berhasil) dalam file "header". Mulai sekarang, Anda dapat menggunakan cookie itu untuk mengautentikasi Anda ke bagian mana pun dari situs web yang biasanya Anda akses setelah masuk dengan browser.
sumber
dan ada banyak opsi lagi, periksa
curl --help
untuk informasi lebih lanjut.sumber
Jika Anda malas, Anda bisa mendapatkan google-chrome untuk melakukan semua pekerjaan untuk Anda.
Chrome akan menyalin semua data permintaan dalam sintaks CURL.
Penggunaan Chrome
--data 'param1=hello¶m2=world'
yang Anda dapat membuatnya lebih mudah dibaca dengan menggunakan satu-d
atau-F
per parameter tergantung pada jenis permintaan POST mana yang ingin Anda kirim, yang dapat berupaapplication/x-www-form-urlencoded
ataumultipart/form-data
sesuai.Ini akan POST-ed as
application/x-www-form-urlencoded
( digunakan untuk sebagian besar formulir yang tidak mengandung unggahan file ):Untuk
multipart/form-data
penggunaan POST-F
( biasanya digunakan dengan formulir yang berisi unggahan file, atau urutan bidang yang penting, atau jika diperlukan beberapa bidang dengan nama yang sama ):The
User-Agent
header biasanya tidak diperlukan, tapi aku sudah dilemparkan itu hanya dalam kasus. Anda dapat menghindari keharusan mengatur agen pengguna pada setiap permintaan dengan membuat~/.curlrc
file yang berisi misUser-Agent: "Mozilla/2.2"
sumber