Saya menggunakan utilitas baris perintah cURL untuk mengirim HTTP POST ke layanan web. Saya ingin memasukkan konten file sebagai entitas tubuh POST. Saya sudah mencoba menggunakan -d </path/to/filename>
juga varian lain dengan tipe info seperti --data </path/to/filename> --data-urlencode </path/to/filename>
dll ... file selalu terlampir. Saya membutuhkannya sebagai entitas tubuh.
207
cat file.txt | curl --data "@-" `(< url.txt )`
@-
memberi tahu curl untuk membaca dari stdin. Anda juga bisa menggunakan redirect(< x.txt )
untuk memasukkan apa pun yang Anda inginkan. Jika Anda menggunakan bash.--data-binary
di tempat--data
.name:value
pasangan, seperti nama pengguna dan kata sandi, maka tambahkan tajuk yang diperlukan yang cocok dengan apa yang diharapkan oleh layanan:--header: "<header_name>:<header_value>"
sebagai satu string.Saya tahu pertanyaannya telah dijawab, tetapi dalam kasus saya, saya mencoba mengirim konten file teks ke api Slack Webhook dan untuk beberapa alasan jawaban di atas tidak berfungsi. Siapa pun, inilah yang akhirnya melakukan trik untuk saya:
sumber
curl: argument list too long
dalam hal ini jawaban yang diterima adalah penyelamat hidupcurl --data "@/path/to/filename" http://...
Dalam kasus saya,
@
menyebabkan semacam masalah penyandian, saya masih lebih suka cara lama saya:sumber