Ingin menyelesaikan lebih banyak pekerjaan dengan waktu yang lebih singkat? Melalui panduan ini,kamu akan menguasai perintah cURL penting, dari yang dasar hingga yang paling advance, untuk menyederhanakan alur kerja sehari-hari.
Bersiaplah menyelami berbagai trik berharga yang akan mendongkrak keterampilan kamu.
Apa itu cURL?
Sebelum masuk ke perintah, mari pahami apa itu cURL. Singkatan dari Client URL, cURL adalah alat command-line untuk mentransfer data dari dan ke server.
Ia mendukung berbagai protokol seperti HTTP, HTTPS, dan FTP, sehingga menjadi andalan untuk mengunduh file, menguji API, atau mengeksplorasi server.
Sintaks Dasar cURL
Sintaks dasar perintah cURL terbilang mudah dipahami.
curl [options] [URL]
Fungsi paling dasar cURL adalah mengambil konten dari sebuah URL. Berikut contoh penggunaannya:
curl http://example.com
Perintah ini berfungsi untuk mengambil (fetch) konten HTML dari example.com dan menampilkan outputnya di terminal kamu.
Opsi penting di cURL
Mari kita lanjutkan dengan beberapa fitur andalan cURL yang sangat praktis dalam penggunaannya:
-O (Remote file download)
Salah satu opsi yang paling berguna adalah -O untuk mengunduh berkas dari remote ke komputer lokal. Berkas akan disimpan dengan nama yang sama seperti di server.
curl -O http://example.com/geeksconn.txt
Dengan perintah ini, file geeksconn.txt dari example.com akan diunduh dan disimpan dalam direktori kerja kamu saat ini.
-o (Save file with a different name)
Jika kamu ingin memberi nama khusus pada file hasil unduhan atau mengaturnya dalam struktur tertentu, opsi -o adalah solusinya.
curl -o geeks.txt http://example.com/geeksconn.txt
Dengan perintah ini, berkas dari remote akan disimpan di lokal dengan nama geeks.txt. Sangat berguna untuk menjaga konsistensi penamaan file.
-L (Follow redirects)
Terkadang kita menghadapi pengalihan URL. Secara default, cURL tidak mengikuti pengalihan tersebut. Namun dengan opsi -L, kamu dapat memerintahkan cURL untuk secara otomatis mengikuti proses pengalihan.
curl -L http://example.com
Dengan opsi ini, cURL akan secara otomatis mengikuti semua proses pengalihan (redirect) sampai mencapai URL tujuan akhir.
-d (Sending POST data)
Untuk berinteraksi dengan API atau mengirim data form web, gunakan opsi -d. Opsi ini memungkinkan kamu mengirim permintaan POST beserta datanya ke server.
curl -d “param1=nilai1¶m2=nilai2” http://example.com/formulir
Opsi ini mengirim data yang ditentukan sebagai permintaan POST ke URL tujuan. Sangat berguna untuk melakukan pengujian pada form web atau API.
-H (Adding custom headers)
Opsi -H memungkinkan kamu menambahkan header HTTP kustom pada permintaan, seperti menetapkan Content-Type atau menyertakan token otorisasi.
curl -H “Content-Type: application/json” -H “Authorization: Bearer YourTokenHere” http://example.com/api
Perintah ini mengirimkan request beserta Custom Header yang ditentukan sebuah fungsi vital untuk berbagai integrasi API.
-X (Specifying request command)
Secara default, cURL melakukan permintaan GET. Opsi -X memungkinkan kamu menetapkan metode HTTP secara eksplisit, termasuk POST, PUT, DELETE, dan metode lainnya.
curl -X POST http://example.com/resource
Opsi ini secara eksplisit menetapkan metode permintaan HTTP menjadi POST.
Penggunaan lanjutan cURL
Mari kita eksplorasi berbagai penggunaan lanjutan cURL yang dapat meningkatkan kemampuan command-line kamu secara signifikan.
Contoh-contoh berikut akan memperlihatkan fleksibilitas cURL dalam menangani tugas-tugas kompleks dengan mudah.
Working with APIs
curl -H “Content-Type: application/json” -H “Authorization: API_KEY” -X GET “https://api.example.com/data”
Uploading files
cURL juga mampu mengunggah file ke server dengan menggunakan metode multipart/form-data, yang merupakan standar umum untuk form pengiriman file.
curl -F “[email protected]” http://example.com/upload
Perintah ini mengunggah file localfile.zip dari sistem lokal kamu ke server. Tanda @ dalam perintah menunjukkan bahwa yang diacu adalah sebuah file dalam sistem lokal.
Kemampuan ini sangat berguna untuk mengotomatiskan proses upload atau diintegrasikan ke dalam pipeline CI/CD.
Saving cookies
Dalam skenario yang melibatkan autentikasi website atau pemeliharaan sesi, cookie memainkan peran krusial.
cURL memiliki kemampuan untuk menyimpan dan menggunakan cookie dengan konfigurasi berikut:
# Simpan cookie
curl -c cookies.txt -X POST -d “username=user&password=pass” http://example.com/login# Gunakan cookie untuk permintaan berikutnya
curl -b cookies.txt http://example.com/dashboard
Pertama, proses autentikasi dilakukan dengan login ke situs dan menyimpan token sesi yang diterima ke dalam file cookies.txt.
Cookie yang tersimpan ini kemudian digunakan untuk permintaan selanjutnya guna mengakses sumber daya yang memerlukan otorisasi.
Rate limiting
Dalam mengakses API atau server, penerapan rate limiting sangat penting dan seringkali diperlukan.
Walaupun cURL tidak memiliki kemampuan built-in untuk ini, solusinya adalah dengan mengkombinasikan cURL dan perintah sleep dalam script bash:
for i in {1..10}; do
curl -H “Authorization: API_KEY” “https://api.example.com/data?page=${i}”
sleep 1 # Sleep for 1 second between requests
done
Melalui perulangan ini, sepuluh permintaan dikirimkan ke API secara berurutan dengan waktu tunggu satu detik di antara tiap permintaan.
Strategi ini diterapkan untuk mencegah server mengalami kelebihan beban.
Debugging with verbose mode
Ketika mengalami kendala, mode verbose pada cURL dapat menjadi solusi yang sangat membantu.
Mode ini memberikan informasi terperinci mengenai permintaan yang dikirim dan respons yang diterima, sehingga memudahkan proses debugging.
curl -v http://example.com
Fitur verbose menampilkan request header, response header, dan berbagai informasi diagnostik lain yang membantu identifikasi masalah.
Parallel requests with xargs
Untuk menjalankan multiple cURL request secara paralel, kombinasikan dengan xargs. Pendekatan ini ideal untuk download batch atau skenario testing.
echo url1 url2 url3 | xargs -n 1 -P 3 curl -O
Perintah ini mendownload tiga URL secara bersamaan (-P 3), dimana masing-masing URL diunduh oleh cURL menggunakan parameter -O.

