1
0
mirror of https://github.com/thooge/esp32-nmea2000-obp60.git synced 2026-08-18 10:22:31 +02:00
Files
esp32-nmea2000-obp60/lib/obp60task/NetworkClient.h
T
2026-03-12 18:40:36 +00:00

31 lines
919 B
C++

#pragma once
#include <ArduinoJson.h>
#include <WiFi.h>
#include <HTTPClient.h>
#define DEBUGING true // Debug flag for NetworkClient for more live information
#define READLIMIT 200000 // HTTP read limit in byte for gzip content (can be adjusted)
#define CONNECTIONTIMEOUT 3000 // Timeout in ms for HTTP connection
#define TCPREADTIMEOUT 2000 // Timeout in ms for read HTTP client stack
#define READDATATIMEOUT 2000 // Timeout in ms for read data
class NetworkClient {
public:
NetworkClient(size_t reserveSize = 0);
~NetworkClient();
bool fetchAndDecompressJson(const String& url);
JsonDocument& json();
bool isValid() const;
private:
DynamicJsonDocument _doc;
bool _valid;
uint8_t* _jsonRaw;
size_t _jsonRawLen;
int skipGzipHeader(const uint8_t* data, size_t len);
bool httpGetGzip(const String& url, uint8_t*& outData, size_t& outLen);
};