Apa cURL command-line sintaks untuk melakukan permintaan POST?

Bagaimana saya bisa membuat POS permintaan dengan cURL tool command-line?

Mengomentari pertanyaan (1)

Dengan bidang:

curl --data "param1=value1&param2=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 cURL manual. The cURL tutorial meniru sebuah peramban web adalah membantu.

Dengan libcurl, gunakan curl_formadd() fungsi untuk membangun formulir anda sebelum mengirimkan itu dengan cara yang biasa. Lihat libcurl dokumentasi untuk informasi lebih lanjut.

Untuk file besar, pertimbangkan untuk menambahkan parameter untuk menunjukkan kemajuan upload:

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.

Komentar (6)

Untuk Tenang HTTP POST 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 dari file yang bernama filename.txt dan mengirimkannya sebagai permintaan post.

Komentar (5)

Data dari stdin dengan -d @-

Contoh:

echo '{"text": "Hello **world**!"}' | curl -d @- https://api.github.com/markdown

Output:

<p>Hello <strong>world</strong>!</p>
Komentar (2)
curl -d "name=Rafael%20Sagula&phone=3320780" http://www.where.com/guest.cgi 

adalah contoh yang ditemukan dalam Curl Contoh Manual.

Menggunakan %26 untuk ampersands meskipun jika di atas doesn't bekerja:

curl -d "name=Rafael%20Sagula%26phone=3320780" http://www.where.com/guest.cgi 
Komentar (0)

Jika anda ingin login 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 berhasil login) di "judul" berkas. Mulai sekarang anda dapat menggunakan cookie untuk mengotentikasi anda untuk setiap bagian dari situs web yang anda akses setelah login dengan browser.

Komentar (1)
curl -v --data-ascii var=value http://example.com

dan ada lebih banyak pilihan, centang curl --help untuk informasi lebih lanjut.

Komentar (0)

Jika anda malas, anda bisa mendapatkan google chrome untuk melakukan semua pekerjaan untuk anda.

  1. Klik kanan bentuk yang ingin anda kirimkan dan pilih Memeriksa. Ini akan membuka DevTools panel.
  2. Pilih Jaringan tab di devtools dan centang Melestarikan log checkbox.
  3. Menyerahkan formulir dan cari entri dengan metode POST (klik kanan pada judul kolom dan pastikan **** Metode diperiksa).
  4. Klik kanan garis dengan POSTING, dan pilih Copy > Copy sebagai cURL.

Chrome akan menyalin semua data permintaan di cURL sintaks.

Chrome menggunakan --data &#39;param1=halo&param2=world&#39; mana anda dapat membuat lebih mudah dibaca dengan menggunakan single -d atau -F per parameter tergantung pada jenis permintaan POST yang ingin anda kirim, yang dapat berupa application/x-www-form-urlencoded atau multipart/form-data yang sesuai.

Ini akan menjadi POST-ed sebagai application/x-www-form-urlencoded (digunakan untuk sebagian besar dari bentuk-bentuk yang don't berisi file upload):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -d param1=hello \
    -d name=dinsdale

Untuk multipart/form-data POST menggunakan -F (biasanya digunakan dengan bentuk-bentuk yang mengandung upload file, atau di mana urutan bidang penting, atau di mana beberapa bidang dengan nama yang sama yang diperlukan):

curl http://httpbin.org/post \
    -H "User-Agent: Mozilla/2.2" \
    -F param1=hello \
    -F name=dinsdale \
    -F name=piranha

User-Agent header biasanya tidak diperlukan, tetapi aku've dilemparkan itu hanya dalam kasus. Anda dapat menghindari untuk mengatur user agent pada setiap permintaan dengan membuat ~/.curlrc file yang berisi misal User-Agent: "Mozilla/2.2"

Komentar (0)