Saya menemukan banyak contoh tentang cara menggunakan perintah POST sederhana di cURL, tetapi saya tidak menemukan contoh tentang cara mengirim perintah HTTP POST lengkap, yang berisi:
- Tajuk (Otentikasi Dasar)
- HTTP Params (
s=1&r=33
) - Data Tubuh, beberapa string XML
Yang saya temukan adalah:
echo "this is body" | curl -d "ss=ss&qq=11" http://localhost/
Itu tidak berfungsi, dan mengirimkan parameter HTTP sebagai isi.
--header
dan yang ini tidakJawaban:
Tidak cukup reputasi untuk berkomentar jadi tinggalkan ini sebagai jawaban berharap itu bisa membantu.
Inilah yang saya gunakan untuk operasi bucket S3 acl put. Header dalam -H dan tubuh yang merupakan file xml dalam $ {aclfile} setelah -T. Anda dapat melihatnya dari output:
jika url params berisi tanda-tanda khusus seperti "+", gunakan --data-urlencode untuk setiap param (berisi tanda-tanda khusus) dari mereka:
sumber
"Parameter" HTTP adalah bagian dari URL:
Otentikasi dasar memiliki opsi terpisah, tidak perlu membuat header khusus:
"Badan" POST dapat dikirim melalui
--data
(untukapplication/x-www-form-urlencoded
) atau--form
(untukmultipart/form-data
):Jadi, untuk meringkas:
sumber