Secara default Anda menggunakan curl tanpa secara eksplisit mengatakan metode permintaan mana yang akan digunakan. Jika Anda hanya memasukkan HTTP URL seperti curl http://example.com
itu akan menggunakan GET. Jika Anda menggunakan -d
atau -F
curl akan menggunakan POST, -I
akan menyebabkan HEAD dan-T
akan membuatnya menjadi PUT.
Jika karena alasan apa pun Anda tidak senang dengan pilihan default yang dilakukan oleh curl ini, Anda dapat mengganti metode permintaan tersebut dengan menentukan -X [WHATEVER]
. Dengan cara ini Anda dapat misalnya mengirim HAPUS dengan melakukan curl -X DELETE [URL]
.
Dengan demikian tidak ada gunanya melakukan curl -X GET [URL]
karena GET akan digunakan. Dalam nada yang sama itu tidak ada gunanya untuk dilakukan curl -X POST -d data [URL]...
Tapi Anda bisa membuat permintaan yang menyenangkan dan agak jarang yang mengirimkan tubuh permintaan dalam permintaan GET dengan sesuatu seperti curl -X GET -d data [URL]
.
Menggali lebih dalam
curl -GET
(menggunakan satu tanda hubung) salah untuk tujuan ini. Itu setara dengan menentukan -G
, -E
dan-T
dan itu akan melakukan sesuatu yang sama sekali berbeda.
Ada juga opsi curl yang disebut --get
untuk tidak mengacaukan masalah. Ini adalah bentuk panjang -G, yang digunakan untuk mengonversi data yang ditentukan dengan-d
menjadi permintaan GET, bukan POST.
(Saya kemudian menggunakan jawaban saya sendiri di sini untuk mengisi FAQ ikal untuk membahas ini .)
Peringatan
Versi modern dari curl akan memberi tahu pengguna tentang penggunaan -X yang tidak perlu dan berpotensi berbahaya ini ketika mode verbose diaktifkan ( -v
) - untuk membuat pengguna sadar. Lebih lanjut dijelaskan dan dimotivasi dalam posting blog ini .
-G mengubah badan POST + menjadi kueri GET +
Anda dapat meminta curl untuk mengonversi satu set -d
opsi dan alih-alih mengirimnya ke badan permintaan dengan POST, letakkan di akhir string kueri URL dan keluarkan GET, dengan menggunakan `-G. Seperti ini:
curl -d name=daniel -d grumpy=yes -G https://example.com/