Request HTTP na ESP8266

W poprzednim poście opisałem jak ustalić połączenie WiFi używając modułu ESP8266. Jednak samo połączenie z internetem jest bezwartościowe, dopóki nie zostanie skonsumowane. Zatem w dzisiejszym blogpoście przedstawię jak tę łączność wykorzystać i zademonstruję kod, który wykonuje proste zapytanie HTTP.
ESP8266HTTPClient
W celu wysłania requestu postanowiłem użyć modułu ESP8266HTTPClient. Potrafi on sam użyć zainicjalizowanego wcześniej połączenia WiFi. Jego obsługa jest dziecinnie prosta, a składa się z następujących kroków:
- Upewnij, że połączenie z WiFi jest ustalone.
- Wywołaj metodę begin, aby ustalić kontekst wywołania. Jeżeli zwróci false to znaczy, że url został źle podany.
- Uruchom metodę GET/POST/PUT, w zależności od potrzeb. Zwróci ona w odpowiedzi status code.
- Jeżeli spodziewasz się odpowiedzi to wywołaj metodę getString, która zwróci odpowiedź otrzymaną z serwera.
- Pamiętaj o wywołaniu metody end w celu zakończenia połączenia i zwolnienia zasobów.
Implementacja
Poniżej przedstawiam klasę HttpRequester, która opakowuje opisane wyżej kroki.
HttpRequester.h
#include
#include
class HttpRequester {
public:
String Get(char* url);
};
HttpRequester.h
#include
#include "HttpRequester.h"
String HttpRequester::Get(char* url){
String payload = "";
HTTPClient http;
http.begin(url);
int httpCode = http.GET();
if(httpCode > 0) {
if(httpCode == HTTP_CODE_OK) {
payload = http.getString();
}
}
http.end();
return payload;
}
Jaki następny krok
Skoro już umiemy połączyć się z siecią WiFi oraz mamy napisany kod do wywoływania serwisów internetowych. Naturalnym następnym krokiem będzie połączenie tych dwóch rzeczy razem. Jednak o tym już mówi kolejny post :).
0 Komentarzy