Jawaban:
Dengan bidang:
curl --data "param1=value1¶m2=value2" https://example.com/resource.cgi
Dengan bidang yang ditentukan secara individual:
curl --data "param1=value1" --data "param2=value2" https://example.com/resource.cgi
Multipart:
curl --form "fileupload=@my-file.txt" https://example.com/resource.cgi
Multipart dengan bidang dan nama file:
curl --form "fileupload=@my-file.txt;filename=desired-filename.txt" --form param1=value1 --form param2=value2 https://example.com/resource.cgi
Tanpa data:
curl --data '' https://example.com/resource.cgi
curl -X POST https://example.com/resource.cgi
curl --request POST https://example.com/resource.cgi
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:
curl --tr-encoding -X POST -v -# -o output -T filename.dat \
http://example.com/resource.cgi
The -o output
diperlukan, jika tidak ada progress bar akan muncul.
--data-urlencode
(tanpa tanda hubung), dalam versi terbaru setidaknya
With Fields
, kapan dengan Multipart
dan kapan Without Data
?
--data
bisa Anda gunakan -d
.
Untuk POST HTTP TENANG yang berisi XML:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:text/xml"
atau untuk JSON, gunakan ini:
curl -X POST -d @filename.txt http://example.com/path/to/resource --header "Content-Type:application/json"
Ini akan membaca isi file yang bernama filename.txt
dan mengirimkannya sebagai permintaan posting.
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 file filename
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:
echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown
Keluaran:
<p>Hello <strong>world</strong>!</p>
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi
adalah contoh yang ditemukan dalam Curl Example Manual .
Gunakan% 26 untuk ampersand meskipun jika di atas tidak berfungsi:
curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi
Jika Anda ingin masuk ke situs, lakukan hal berikut:
curl -d "username=admin&password=admin&submit=Login" --dump-header headers http://localhost/Login
curl -L -b headers http://localhost/
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.
curl -v --data-ascii var=value http://example.com
dan ada banyak opsi lagi, periksa curl --help
untuk informasi lebih lanjut.
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 berupa application/x-www-form-urlencoded
atau multipart/form-data
sesuai.
Ini akan POST-ed as application/x-www-form-urlencoded
( digunakan untuk sebagian besar formulir yang tidak mengandung unggahan file ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-d param1=hello \
-d name=dinsdale
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 ):
curl http://httpbin.org/post \
-H "User-Agent: Mozilla/2.2" \
-F param1=hello \
-F name=dinsdale \
-F name=piranha
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"
curl -d "param1=value1¶m2=value2" -X POST http://localhost:3000/data