mirror of
https://github.com/thooge/esp32-nmea2000-obp60.git
synced 2025-12-29 21:43:06 +01:00
28 lines
848 B
C++
28 lines
848 B
C++
#pragma once
|
|
#include <ArduinoJson.h>
|
|
#include <WiFi.h>
|
|
#include <HTTPClient.h>
|
|
|
|
#define DEBUG false // 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);
|
|
|
|
bool fetchAndDecompressJson(const String& url);
|
|
JsonDocument& json();
|
|
bool isValid() const;
|
|
|
|
private:
|
|
DynamicJsonDocument _doc;
|
|
bool _valid;
|
|
|
|
int skipGzipHeader(const uint8_t* data, size_t len);
|
|
bool httpGetGzip(const String& url, uint8_t*& outData, size_t& outLen);
|
|
};
|
|
|