cURL adalah alat command-line yang digunakan untuk mentransfer data antarjaringan, ia mendukung protokol HTTP, HTTPS, FTP, IMAP, IMAPS, SMTP, dan sebagainya.

Alat ini biasanya digunakan untuk menguji coba API, mengunduh dan mengunggah file.

Membuat permintaan HTTP GET

cURL umumnya digunakan untuk membuat permintaan HTTP GET untuk mengambil data dari URL seperti data laman web, gambar, video, dan lain-lain.

curl https://adityaphra.com

Jika kalian menjalankan perintah di atas, cURL akan mengambil data laman web kemudian ditampilkan di layar terminal.

Menampilkan header respons

Secara bawaan, cURL menyembunyikan header respons ketika membuat permintaan jaringan. Cara menampilkannya gunakan opsi -i.

curl -i https://adityaphra.com

Menampilkan respons header saja

Kalau data tidak ingin diunduh oleh cURL, gunakan opsi -I untuk menampilkan header respons saja.

curl -I https://adityaphra.com

Menyimpan data sebagai file

Secara bawaan, cURL menampilkan data yang diunduh di layar terminal, bagaimana jika data tersebut berupa gambar? Tentu terminal akan menampilkan file biner gambar yang tidak dapat dimuat oleh terminal.

Dengan begitu, kalian perlu menyimpannya sebagai file agar dapat dibuka oleh aplikasi lain.

Untuk melakukannya, gunakan opsi -o serta paramater nama/direktori file.

curl -o nama-file.jpg https://adityaphra.com/img/hello.jpg

Selain dengan opsi di atas, kalian juga bisa mengunduh file menggunakan opsi -O.

curl -O https://adityaphra.com/img/hello.jpg

Apa bedanya opsi -odan -O?

Jika menggunakan -o, kalian harus memasukkan parameter nama/direktori file, sedangkan opsi -O tidak, karena ia akan disimpan sesuai dengan nama file dari URL yang diminta.

Pada contoh di atas, file yang akan disimpan bernama hello.jpg.

Membuat permintaan HTTP POST

cURL dapat digunakan untuk membuat permintaan HTTP POST sebagai HTML Form.

curl -d "username=aditya&[email protected]" https://adityaphra.com

Pada kasus ini, cURL akan melakukan HTTP POST menggunakan application/x-www-form-urlencoded sebagai Content-Type-nya.

Kalian dapat mengganti HTTP Method dari POST menjadi PUT dengan opsi -X.

curl -X PUT -d "username=aditya&[email protected]" https://adityaphra.com

Mengirim JSON dengan permintaan HTTP POST

Kalau ingin mengirimkan data JSON, kalian perlu mengatur header Content-Type secara eksplisit dengan opsi -H.

curl -d '{"username": "aditya", "email": "[email protected]"}' -H "Content-Type: application/json" https://adityaphra.com

Selain itu, kalian dapat mengirim data JSON dari file.

curl -d "@file.json" -H "Content-Type: application/json" https://adityaphra.com/

Mengikuti URL yang dialihkan

Secara bawaan, cURL tidak akan mengikuti URL yang dialihkan.

curl http://adityaphra.com

Dengan kata lain, ketika kalian menjalankan perintah di atas tidak akan ditampilkan data laman web, karena URL tersebut dialihkan menuju https://adityaphra.com

Agar cURL dapat mengikuti URL tersebut, gunakan opsi -L.

curl -L http://adityaphra.com

Menggunakan HTTP Authentication

Ketika hendak membuat permintaan jaringan terhadap URL yang memerlukan HTTP Basic Authentication, kalian perlu menggunakan opsi -u beserta parameter username dan password.

curl -u username:password https://adityaphra.com

Mengganti User-Agent

User agent berfungsi untuk memberi tahu server informasi pengguna seperti informasi browser dan sistem operasi yang sedang digunakan.

Secara bawaan, cURL menggunakan user agent curl/<versi curl> seperti curl/7.68.0

curl -A "Chrome/89.0.4389.90" https://adityaphra.com

Oke cukup segitu aja. Sekian dan terima kasih 😁.