Troubleshooting cURL for Windows

Beberapa waktu yang lalu sempat mencoba penggunaan cURL di sistem operasi Windows buat mengakses Application Programming Interface (API) dari Network Controller pada Cisco Packet Tracer. Selama ini biasanya menggunakan cURL pada sistem operasi Linux dan tanpa kendala ketika menggunakannya. Namun ternyata berbeda cerita ketika menggunakan cURL di Windows.

Mulai berjumpa dengan pesan error saat mencoba cURL untuk membuat ticket melalui API ke Cisco Network Controller. Pembuatan ticket melalui cURL memerlukan penggunaan HTTP method POST dan informasi Uniform Resource Identifier (URI) dari Cisco Network Controller yaitu berupa alamat IP 127.0.0.1 dan nomor port 58000 serta path dari method API ticket. Selain itu juga diperlukan data login berupa username “sabar” dan password “menanti” menggunakan format JSON sehingga API request dengan cURL akan terlihat seperti berikut:

Terlihat muncul pesan error “Content type ‘application/x-www-form-urlencoded’ not supported” dan “Could not resolve host: application“.

Bagi rekan-rekan yang belum mengenal tentang cURLcURL merupakan tool berbasis command line yang digunakan untuk mentransfer data dari atau ke server dan mendukung beragam protokol meliputi HTTP, HTTPS, TELNET, TFTP, SCP, SFTP, DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SMB, SMBS, SMTP, SMTPS, WS dan WSS. cURL telah terinstalasi secara langsung pada sistem operasi Windows mulai dari Windows 10 versi 1803 dan Windows Server 2019. Untuk mengetahui lokasi instalasi cURL maka dapat mengeksekusi perintah where curl.

Terlihat lokasi penyimpanan file executable dari cURL adalah di C:\Windows\System32\curl.exe. Sedangkan untuk mengetahui versi cURLyang terinstalasi di sistem Windows maka dapat mengeksekusi perintah curl --version.

Terlihat versi cURL yang digunakan adalah 7.79.1. Apabila rekan-rekan ingin menggunakan versi terbaru dari cURL maka dapat mengunduh melalui alamat https://curl.se/windows/.

Setelah melalui troubleshooting ternyata terdapat 2 (dua) penyebab dan solusi penyelesaian error tersebut yaitu:

  1. Penggunaan tanda petik tunggal (single quote)  di bagian option -H (header) dan  -d (data) yang wajib diganti dengan tanda petik ganda (double quote).
  2. Penggunaan tanda petik ganda (double quote) di dalam kurung kurawal (curly braces) wajib di escape sequence menggunakan tanda backslash (\).

Hasil perbaikan dan eksekusinya akan terlihat sebagai berikut:

Terlihat ticket telah berhasil diperoleh sehingga dapat digunakan sebagai token untuk mengakses sumber daya lainnya di Cisco Network Controller melalui API.

Sebagai alternatif data login dalam format JSON yang sebelumnya langsung dicantumkan sebagai nilai dari option -d dapat disimpan pada file terpisah dan dipanggil ketika mengeksekusi cURL dengan bantuan karakter @filename. Sebagai contoh akan dibuat direktori dengan nama “belajar” dengan mengeksekusi perintah md belajar dan berpindah ke dalam direktori tersebut dengan mengeksekusi perintah cd belajar sehingga terlihat seperti berikut:

Selanjutnya dilakukan pembuatan file dengan nama “akun.txt” yang didalamnya memuat data login dalam format JSON menggunakan perintah echo {"username":"sabar","password":"menanti"} > akun.txt dan memverifikasi hasil pembuatan file tersebut dengan mengeksekusi perintah type akun.txt.

Mengeksekusi API request menggunakan cURL dengan data login yang bersumber dari file dengan nama “akun.txt” yang telah dibuat sebelumnya sehingga perintahnya akan terlihat seperti berikut:

Rekan-rekan juga dapat memecah perintah ke dalam beberapa baris untuk mempermudah keterbacaan dengan menggunakan tanda caret (^) sehingga terlihat seperti berikut:

Demikian troubleshooting dan beberapa tips penggunaan cURL pada sistem operasi Windows. Semoga bermanfaat. Apabila terdapat pertanyaan, silakan mengomentari posting ini. Terimakasih.

0

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.