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:
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.
Jika anda malas, anda bisa mendapatkan google chrome untuk melakukan semua pekerjaan untuk anda.
Klik kanan bentuk yang ingin anda kirimkan dan pilih Memeriksa. Ini akan membuka DevTools panel.
Pilih Jaringan tab di devtools dan centang Melestarikan log checkbox.
Menyerahkan formulir dan cari entri dengan metode POST (klik kanan pada judul kolom dan pastikan **** Metode diperiksa).
Klik kanan garis dengan POSTING, dan pilih Copy > Copy sebagai cURL.
Chrome akan menyalin semua data permintaan di cURL sintaks.
Chrome menggunakan --data 'param1=halo¶m2=world' 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):
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):
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"
Dengan bidang:
Dengan bidang yang ditentukan secara individual:
Multipart:
Multipart dengan bidang dan nama file:
Tanpa data:
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:
The
-o output
diperlukan, jika tidak ada progress bar akan muncul.Untuk Tenang HTTP POST yang berisi XML:
atau untuk JSON, gunakan ini:
Ini akan membaca isi dari file yang bernama
filename.txt
dan mengirimkannya sebagai permintaan post.Data dari stdin dengan
-d @-
Contoh:
Output:
adalah contoh yang ditemukan dalam Curl Contoh Manual.
Menggunakan %26 untuk ampersands meskipun jika di atas doesn't bekerja:
Jika anda ingin login ke situs, lakukan hal berikut:
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.
dan ada lebih banyak pilihan, centang
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 di cURL sintaks.
Chrome menggunakan
--data 'param1=halo¶m2=world'
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 berupaapplication/x-www-form-urlencoded
ataumultipart/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):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):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 misalUser-Agent: "Mozilla/2.2"