Perintah cURL
Perintah cURL

Perintah cURL: Opsi Penting, Dasar dan Lanjutan

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&param2=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

Interaksi dengan API merupakan tugas yang umum dalam pengembangan perangkat lunak, dan cURL adalah alat yang sangat efektif untuk keperluan tersebut.
Sebagai contoh, misalkan kamu ingin menggunakan sebuah API RESTful.
curl -H “Content-Type: application/json” -H “Authorization: API_KEY” -X GET “https://api.example.com/data”
Perintah ini melakukan permintaan GET ke endpoint API dengan menyertakan header Content-Type untuk JSON dan header Authorization.
Pola seperti ini sangat krusial ketika berinteraksi dengan API yang membutuhkan proses autentikasi.

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.