Otevře se na nové kartě

ESP32 / ESP8266 MicroPython: HTTP POST požadavek

Níže uvedený článek je článek přeložený ze stránek dfrobot.com.

Úvod:

Cílem tohoto návodu je ukázat, jak lze v MicroPythonu zpracovávat HTTP požadavky a data z nich předané metodou POST. Opět k tomu využijeme knihovnu urequests. Je nutné upozornit na to, že v době psaní článku byl modul urequests součástí základního balíku MicroPythonu. To se může v budoucích verzích změnit a bude nutné ho doinstalovat ručně. Program byl testován jak na ESP32, tak ESP8266.

Všechny články o MicroPython a ESP32/ESP8266 najdete na https://chiptron.cz/articles.php?cat_id=23

Náš požadavek pošleme do testovací online služby, která má REST API a umí tyto požadavky zpracovat. Má několik způsobů, jak tam požadavek typu POST poslat. My využijeme tu, kde stačí za adresu přidat /post.

Nejprve musíme mít zařízení připojené do internetu. V přechozím díle bylo vysvětleno, jak na to.

Program:

Nejprve musíme načíst knihovnu urequests, abychom mohli vytvářet HTTP požadavky.
import urequests

Pro vytvoření požadavku zavoláme funkci post. Tato funkce má jako vstup URL adresu, kam má být požadavek směřován, a parametry požadavku. Tyto parametry jsou ve tvaru klíč-hodnota. V definici funkce bychom mohli najít, že parametry jsou definovány jako argumenty typu **kwargs. Více si o nich můžete přečíst zde.

Jelikož v sobě funkce post volá funkci request, můžeme se podívat na dodatečné parametry, které můžeme funkci předat a které ovlivní její chování. Například parametr data odpovídá tělu požadavku. Pro jednoduchou ukázku funkce zkusíme poslat jen jednoduchou zprávu a nebudeme rozlišovat tzv. content-type. Zavoláme tedy následující příkaz a uložíme si výsledek do proměnné response.

response = urequests.post(„http://jsonplaceholder.typicode.com/posts“, data = „some dummy content“)

Datový typ proměnné response je Response. Pokud bychom zkusili vykonat stejný požadavek službou Postman, vidíme, že nám stránka vrátí odpověď, ve které je položka id s hodnotou 101. Tato odpověď nijak nezávisí na těle naší zprávy. Je to z důvodu, že využíváme testovací službu. V reálném provozu by se nám čísla dost pravděpodobně měnily v závislosti na vykonané akci.

Rozhraní Postmanu s HTTP POST požadavkem a textovým tělem some dummy content

Obrázek 1 – Odpověď serveru

Ve výsledku si tedy jen stačí získat data z naší odpovědi. Přistoupíme k tomu buď jako k obyčejnému textu, a nebo to zpracujeme jako json, protože text odpovědi je tohoto typu. Vnitřně funkce json používá knihovnu ujson, se kterou jsme pracovali v minulých dílech.
print(response.text)

print(response.json())

Okno PuTTY s MicroPythonem ukazuje textovou a JSON odpověď HTTP POST požadavku

Obrázek 2 – Zpracování odpovědi

Originální článek je dostupný zde.

Sdílejte článek:
Tričko Chiptron s potiskem Trust me, I'm a maker
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku
Buy Me a Coffee

Související články

Prohlížeč zobrazuje JSON odpověď na HTTP GET požadavek

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Terminál PuTTY zobrazuje v MicroPythonu načtení JSONu a výpis slovníku se jménem John

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Schéma zapojení ESP8266 a čtyřkanálového relé pro ovládání čtyř žárovek

Open-source repozitář se stovkou IoT projektů na ESP32, ESP8266 a Raspberry Pi Pico v MicroPythonu. Chytré zavlažování, RFID zámek, detekce plynu, WiFi robot a meteostanice – s kódem i zapojením. Aktualizace: interaktivní přehled projektu. Vyberte si desku a zaměření projektu…

Terminál PuTTY zobrazuje MicroPython kód a výsledek zakódování slovníku do JSONu

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Terminál PuTTY zobrazuje připojení ESP32 k WiFi a získanou IP adresu

Níže uvedený článek je článek přeložený ze stránek dfrobot.

Deska OctopusLAB s ESP32, připojeným sedmisegmentovým displejem a barevnými vodiči

V Octopus LAB (sledujte nás na FB) jsme se poslední dobou hodně soustředili na ESP32 ve spojení s Micropythonem.

Trendy