HTTPClient http;
http.begin("http://jakasstrona.com/plik.txt");
String bufor = http.getString();
Serial.print(bufor);
Pliki w sieci są z reguły formatowane, jeśli to jakieś API to masz JSON (fajny parser), czasami ze znacznikami, jeśli to twój serwer WWW to jeszcze inaczej (event, async, ajax)
Co dokładnie chcesz i skąd pobrać ? Poniżej np. fragment mojego kodu dla ESP/ESP8266 który pobiera z serwera API dane pogodowe i rozbraja łańcuch znaków (STRINGA) do poszczególnych zmiennych, a dane są zapisywane do int, float, double, Strong - dobrodziejstwo JSON (nie martwimy się typami), pobiera go funkcja
httpGETRequest(path.c_str()); gdzie patch to ścieżka źródła
Pełny kod (8000 linijek kodu) takiego mojego ostatniego projektu (własny serwer WWW z AJAKSEM, pobieranie danych z serwera weatherapi.com, ntp, do tego sterowanie smarphonem (Telegram), wysyłanie danych na THINSPEAK, wyswietlanie na MAX7219, sterowanie przekaznikami z komórki, www i nie pamietam co to jeszcze tam robi) znajdziesz na mojej grupie ESP32 :
https://www.facebook.com/groups/1100373413801234
Kod:
PrintMSG("ESP32","MyTask", "Aktualizję pogodę z serwera : api.weatherapi.com");
String path = "http://api.weatherapi.com/v1/current.json?key=xxxxxxxxxx&q=Lubin&lang=pl";
String jsonBuffer = httpGETRequest(path.c_str());
JSON_Weather = JSON.parse(jsonBuffer);
if (JSON.typeof(JSON_Weather) == "undefined")
{
PrintLine(60);
PrintMSG("DarkNet", "POGODA PARSER", "BŁĄD, BRAK DANYCH" );
}
pogoda.miejscowosc = JSON_Weather["location"]["name"];
pogoda.kraj = JSON_Weather["location"]["country"];
pogoda.szerokosc_geograficzna = JSON_Weather["location"]["lat"];
pogoda.dlugosc_geograficzna = JSON_Weather["location"]["lon"];
pogoda.id = JSON_Weather["location"]["tz_id"];
pogoda.czas_epoch = JSON_Weather["location"]["localtime_epoch"];
pogoda.czas_lokalny = JSON_Weather["location"]["localtime"];
pogoda.ostatnia_aktualizacja = JSON_Weather["current"]["last_updated"];
pogoda.temperatura_C = JSON_Weather["current"]["temp_c"];
pogoda.temperatura_C_odczuwalna = JSON_Weather["current"]["feelslike_c"];
pogoda.kondycja = JSON_Weather["current"]["condition"]["text"];
pogoda.predkosc_wiatru_kph = JSON_Weather["current"]["wind_kph"];
pogoda.kierunek_wiatru_stopnie = JSON_Weather["current"]["wind_degree"];
pogoda.kierunek_wiatru_kompas = JSON_Weather["current"]["wind_dir"];
pogoda.podmuchy_wiatru = JSON_Weather["current"]["gust_kph"];
pogoda.cisnienie = JSON_Weather["current"]["pressure_mb"];
pogoda.opady = JSON_Weather["current"]["precip_mm"];
pogoda.wilgotnosc = JSON_Weather["current"]["humidity"];
pogoda.zachmurzenie = JSON_Weather["current"]["cloud"];
pogoda.widzialnosc = JSON_Weather["current"]["vis_km"];
pogoda.index_uv = JSON_Weather["current"]["uv"];
i funkcja pobierania z API Weather jako STRING
Kod:
String httpGETRequest(const char* serverName)
{
HTTPClient http;
http.begin(serverName);
int httpResponseCode = http.GET();
String bufor = "{}";
if ( httpResponseCode > 0 )
{
#if SERIAL
//Serial.print("\nHTTP Response code: ");
//Serial.print(httpResponseCode);
#endif
bufor = http.getString();
}
else
{
#if SERIAL
//Serial.print("Error code: ");
//Serial.println(httpResponseCode);
#endif
}
http.end();
return bufor;
}