MC, 08:05 wtorek, 01.10.2019 r.
Ilustracja do artykułu: curl POST - Jak zrobić request HTTP?

curl POST - Jak zrobić request HTTP?

"Pokaż mi, czy masz curl-a w systemie a powiem ci kim jesteś" mawiali starożytni. Jednak posiadać a władać biegle, to dwie różne sprawy i jeśli można moje własne doświadczenie z tym narzędziem ekstrapolować na pozostałą część populacji, nie popełniając przy tym specjalnego wielkiego błędu, to stwierdzam śmiało, że zapytanie POST robi się znacznie rzadziej niż GET i siłą rzeczy wiele osób, może mieć z tym problem. Jednak taki problem, to nie problem, jeśli przeczytać artykuł do końca.

Jak sprawę ugryźć?

Znając składnię zapytań POST robionych curl-em, wydaje się rozsądne omówić kilka przypadków, różniących się między sobą danymi jakie chcemy przesłać. I tak zacznę od zapytania bez danych, by skończyć na zapytaniach Multipart, po drodze przesyłając zwykłe parametry.

Zapytanie POST bez danych

Wykonanie zapytania POST bez przekazywania żadnych danych, sprowadza się do jawnego wskazania jakiego typu zapytanie chcemy zrobić. Służy do tego celu flaga --request, która skrótowo może być zapisywana przez -X.

curl --request POST https://foor.bar/api
curl -X POST https://foor.bar/api

Zapytanie POST z parametrami

Jeżeli pusty request to dla nas za mało, możemy przekazać parametry w parach klucz=wartość łączonych znakiem &. Definiuje się je jako następnik flagi --data.

curl --data "klucz1=wartosc1&klucz2=wartosc2" https://foor.bar/api

Dla czytelności możemy takie parametry rozbić i przekazać osobno, używając flagi data wielokrotnie, jak w poniższym przykładzie:

curl --data "klucz1=wartosc1" --data "klucz2=wartosc2" https://foor.bar/api

Zapytanie Multipart

Zapytania typu Multipart wykorzystywane są często podczas obsługi formularzy z możliwością uploadu pliku. Curl oczywiście potrafi obsłużyć taki przypadek. Spójrzmy na przykład obrazujący upload pliku tmp.pdf:

curl --form "fileupload=@tmp.pdf" https://foor.bar/api

Tym razem istotna okazuje się flaga --form. Bardziej komplikując takie zapytanie, możemy przekazać docelową nazwę pliku a także dodatkowe parametry:

curl --form "fileupload=@tmp.pdf;filename=nazwa_pliku.pdf" --form klucz1=wartosc1 https://foor.bar/api

Zakończenie

Podsumowując zagadnienie - zapytania POST robione curl-em należy rozpatrywać z punktu widzenia danych jakie planujemy przesłać. Nie są to jednak zapytania skomplikowane i znając składnię, stosunkowo łatwo będzie je zautomatyzować.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: