Lucian Maran

home

cURL in Windows

23 Jun 2014

Problema

Aparent nu ai nicio problema. Instalezi varianta de Windows (download aici sau cinst curl) si totul functioneaza perfect:

Problema apare atunci cand incerci sa rulezi comanda intre apostroafe (in loc de ghilimele). In acest caz vei primi eroarea:

Protocol 'http not supported or disabled in libcurl

Dar de ce ai ai folosi apostroafe?...ar fi intrebarea fireasca. Pentru ca multe (majoritatea) din exemplele pe care le vezi pe net scrise in cURL provin din lumea Unix (ca si utilitarul, de altfel), iar aceste exemple sunt cu apostrof.

Caz concret: toate exemplele din documentatia Elasticsearch sunt de forma:

Daca incerci sa rulezi comanda doar cu copy/paste, primesti eroarea de mai sus.

Solutia 1

Cu aceste modificari, comanda de mai sus ruleaza cu succes:

Dar oare vrei sa faci asta pt. fiecare comanda pe care o experimentezi?

Solutia 2

Aceasta solutie presupune sa rulezi comanda curl intr-un 'shell' Unix. Sigur, tot in Windows.

O varianta ar fi sa instalezi Cygwin (cinst cygwin). Dezavantajul ar fi ca acest pachet poate fi mult prea mare (100MB) fata de ce ai nevoie.

O alta varianta (asta folosesc eu) ar fi sa te bazezi pe shell-ul Git bash pe care il ai deja instalat daca folosesti Git for Windows. La mine l-am gasit in: C:\Users\Lucian\AppData\Local\GitHub\PortableGit_054f2e797ebafd44a30203088cd3d58663c627ef.

Il poti rula in doua moduri:

La final, adauga calea spre git-bash.bat sau bash.exe in variabila PATH.

Concluzie

Multi producatori isi documenteaza REST API-urile folosind varianta cURL cu sintaxa Linux (ex: Elasticsearch). Inlocuid ghilimelele si apostroafele, aceste comnzi pot rula si pe varianta cURL de Windows. Daca vrei insa sa rulezi aceste comenzi fara nicio modificare (doar cu copy/paste), foloseste un shell de tipul cygwin sau git-bash.

comments powered by Disqus