Curl je nástroj příkazového řádku, který umožňuje uživateli přenášet data pomocí libovolného standardního protokolu. Je funkční na všech klíčových operačních systémech včetně Linuxu. Příkaz curl se používá hlavně k testování API (Application programming interface) odesláním požadavku na příspěvek a je předinstalovaný v mnoha distribucích Linuxu. Musíme však ručně nainstalovat příkaz curl v dlouhodobé podpoře Ubuntu 20.04 (LTS).
Pro ukázku se používá Ubuntu 20.04 LTS.
Nainstalujte curl na Ubuntu 20.04
Zadejte níže uvedený příkaz pro instalaci curl v Ubuntu 20.04:
$ sudo apt install curl

Poznámka:Tento krok můžete přeskočit, pokud je již v systému nainstalován příkaz curl.
Jakmile je příkaz curl nainstalován, ověřte nainstalovanou verzi pomocí příkazu:
$ curl --version

Zadejte požadavek POST pomocí curl
K odeslání dat na vzdálený server použijeme metodu HTTP post.
Následuje jednoduchá forma příkazu curl pro odeslání požadavku na příspěvek:
$ curl -X POST [options] [the URL of server]
Volba -X se používá k popisu metody HTTP. Příkaz curl používá metodu Get jako výchozí metodu HTTP. Abychom však mohli provést požadavek POST, musíme zadat POST s volbou -X.
Obecnou žádost o příspěvek lze podat následovně:
$ curl –X POST https://example.com/

S požadavkem POST odešlete další pole
Normálně je požadavek na příspěvek vytvořen pomocí formuláře HTML.
Vytvořil jsem demo API, které přijímá uživatelské jméno a věk. Zašleme žádost o příspěvek a zašleme hodnoty jména a věku. Volba –d se používá s příkazem curl k odeslání dat dalšího pole na vzdálený server.
$ curl -X POST -d 'name=kamran&age=24' https://curlliuxexample.000webhostapp.com/index.php

Místo volby –d můžeme také použít volbu –F k odeslání dodatečných polí s požadavkem na příspěvek následovně:
curl -X POST -F 'name=kamran' -F 'age=24' https://curlliuxexample.000webhostapp.com/index.php

Při použití volby –F nemůžeme sloučit data s operátorem &. Možnost –d používá typ obsahu application/x-www-form-urlencoded při odesílání dat dalšího pole na server, zatímco volba-F používá typ obsahu s více částmi/formovými daty.
Uveďte typ záhlaví nebo obsahu v požadavku POST
Typ záhlaví nebo obsahu lze zadat v požadavku POST pomocí volby -H. Nastavíme Content-Type na application/json a odešleme data JSON pomocí příkazu:
$ curl -X POST -H "Content-Type: application/json" -d '{"name": "kamran", "age": "24"}' https://example.com

Nahrajte soubor(y) pomocí příkazu curl
Soubory lze nahrát pomocí příkazu curl. Chcete-li nahrát soubor pomocí příkazu curl, přidejte před umístění souboru znak „@“:
$ curl -X POST -F '[email protected]/home/Downloads/mypic.jpg' http://example.com

Ve výše uvedeném příkazu nahrávám soubor obrázku pomocí příkazu curl.
Závěr
Tento příspěvek popisuje použití příkazu curl. Pomocí příkazu curl můžeme odeslat další data pole a nahrát soubory na server.