Przejdź do głównej zawartości

Podstawy Node.js - wysyłanie żądań do serwerów WWW (POST)

Dwie chyba najbardziej podstawowe metody protokołu HTTP to GET i POST. Jak sugerują nazwy, pierwsza metoda służy przede wszystkim do pobierania zasobów z serwera (możliwe jest ewentualnie przekazywanie parametrów), druga - do wysyłania danych (np. z formularza) do serwera/serwisu. Szerzej metody te przedstawione zostały w zalinkowanych niżej artykułach i książce.
Metoda GET została zademonstrowana w przykładzie dołączonym do artykułu "Node.js i aplikacje CLI - smaczek przed sesją", nie wymaga więc ponownej prezentacji (mam nadzieję).
Czas w takim razie na metodę POST. Poniższy program demonstruje wykorzystanie znanego nam już obiektu ClientRequest, tworzonego przez funkcję http.request, do wysłania dwóch linijek tekstu do serwera WWW (przyda się tutaj przykład z 35. spotkania ŚRGM - kliknij, wybierz full-web-app).
Należy zauważyć, że utworzony obiekt ClientRequest jest jednocześnie strumieniem z możliwością zapisu - uzyskujemy to dzięki zadeklarowanej w opcjach połączenia (zmienna req_opts) metodzie POST. W związku z tym wysyłanie danych do serwera (we fragmentach - ang. chunks) realizowane jest poprzez funkcję write obiektu ClientRequest, przy czym każde jej wywołanie (w załączonym przykładzie) traktowane jest jak wysłanie kolejnego fragmentu danych (chunk). Zakończenie wysyłania to oczywiście wywołanie funkcji end dla obiektu ClientRequest.
Po zakończeniu transmisji serwer wyśle naszemu programowi odpowiedź (zdarzenie "response") w postaci strony WWW, przygotowanej w oparciu o przesłane wcześniej dane (no, w naszym przypadku określenie "strona WWW" to lekka przesada...).
Zachęcam do przetestowania programu i samodzielnego zgłebienia tematu.



Bibliografia:
Metoda POST
Metoda GET
Protokół HTTP
C. Wong: HTTP. Leksykon kieszonkowy - niestety, niedostępna, ale fajna książeczka.
Funkcja http.request (Node.js API)
Obiekt ClientRequest (Node.js API)

Komentarze

Popularne posty z tego bloga

Niesamowicie prosty czujnik zmierzchowy.

Tym razem zero programowania, będzie natomiast nostalgiczno-wspomnieniowy układzik, lekko zmodyfikowany.
Otóż kilka dni temu rozmawialiśmy w gronie znajomych o różnego rodzaju czujnikach zmierzchowych i czujnikach ruchu. Ponieważ należę do tych wariatów, co to hołdują jeszcze owej przestarzałej i kompletnie odrealnionej dziś zasadzie: "po co kupować, gdy można zrobić", stwierdziłem, że poskładam takie coś (czujnik zmierzchowy; sensor ruchu faktycznie lepiej nabyć, choćby ze względu na rozmiary ;)) i być może podłączę do jakiegoś mikrokontrolera. Przypomniało mi się też przy okazji, że znalazłem ostatnio w elektronicznych śmieciach stary fotorezystor (dla niewtajemniczonych: element zmieniający rezystancję, czyli opór elektryczny, pod wpływem działania strumienia światła) RPP130, jeden z kilku pozostałych po montowanych wieki temu układach tranzystorowych do zdalnego sterowania pracą urządzeń za pomocą latarki... No OK, nie było to specjalnie rozbudowane zdalne sterowanie ;)

Android i zewnętrzny moduł GPS

Od kilku dni jestem w posiadaniu smyrfona z Androidem 4.1.1 na pokładzie. Kwestie związane z wyborem systemu roztrząsałem już na G+, a ten artykuł tutaj ma konkretny temat, więc nie będę wyjaśniał po raz n-ty. Po prostu zwyciężyły popularność i ekosystem oraz przywiązanie do produktów sieciowych Google. Mniejsza.

Zbliża się sezon urlopowy :-) Moi podopieczni już mają wakacje, a ja wyjeżdżam wkrótce. W każdym bądź razie wakacje to podróże - samochodem, rowerem, na piechotę, żaglówką, motorówką, samolotem... Zaawansowane urządzenia mobilne przyzwyczaiły nas już do usług lokalizacyjnych, z których najważniejszą jest GPS (na dalszym planie mamy A-GPS, lokalizacje w oparciu o sieci WiFi itp.). Często korzystamy z programów, które w coraz ciekawszy sposób wiążą naszą lokalizację, pobraną z np. GPS-a, z przeróżnymi danymi, nieraz ocierając się o AR.
Każdy współczesny smartfon, a przynajmniej znakomita ich większość, wyposażona jest we wbudowany odbiornik sygnału lokalizacyjnego (GPS, GLONASS…

Po co mi to całe Arduino?

Oczywiście tytuł ma być jedynie prowokacją. Chociaż nie do końca - artykuł jest właśnie poświęcony pracy w Arduino IDE z mikrokontrolerami, ale bez płytek Arduino.
Czym jest Arduino - wiemy wszyscy, zarówno początkujący fani programowania elektroniki, jak i zaawansowani mikrokontrolerowcy. Jeśli jednak nie do końca wiemy, zachęcam do odwiedzenia strony domowej projektu (link 5 na końcu artykułu) oraz zerknięcia np. w poradnik (link 4).

Jakiś czas temu, przełamując się i zmieniając zdanie ("o 180 stopni" ;-)) nabyłem sobie Arduino Leonardo, głównie w celu jego "obwąchania" i zapoznania się z bogatym zbiorem bibliotek dostępnych dla tej platformy. Zgoda, różne biblioteki są dostępne niezależnie od Arduino, ale i tak się zdecydowałem. Dlaczego Leonardo? Otóż miałem ochotę przyrządzić dwie pieczenie na jednym ogniu - mieć Arduino i przetestować ATmegę 32u4. Dziś doskonale zdaję sobie sprawę, że żeby pobawić się Arduino nie trzeba go w ogóle posiadać... Ale po kolei.

Pi…