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.

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())

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

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

Sdílejte článek:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Toto je první díl ze tří – úvodního kurzu Micropython na ESP32.

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

– Změny v Micropythonu si vynucují změnu octopus() – Opakování a podrobnější doplnění – LED – nejjednodušší knihovna pro testování – web_server() – Webový editor IDE (integrated development environment) – Některé další vychytávky – Drobné projekty – examples V minulých…

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

– ROBOTboard (HW) – Octopus open source knihovny (FW) – Nastavení zařízení a periferií – ds: device setting > pinouts – ios: input-output setup – Upgrade systému – Displeje – Tlačítka – Mechatronika – Čidla a vstupy – Shrnutí V…

Trendy