Biblioteca ESP32 HTTP Client¶
Uma biblioteca cliente HTTP leve, de baixa alocação e alto desempenho para ESP32 que vincula dados de resposta diretamente às suas variáveis — contando com mecanismos nativos em streaming e zero heap para APIs REST, Web Services SOAP 1.1 / 1.2 e comunicação HTTP extensível.
O que é?¶
ESP32-HTTP-Client é um cliente HTTP moderno e modular para o ESP32 projetado para conectar serviços web e a memória do microcontrolador com máxima eficiência. Em vez de tratar a comunicação HTTP como manipulação manual de strings e processamento pesado de árvores DOM, a biblioteca extrai campos de resposta em tempo real diretamente do fluxo da rede para variáveis C++.
Construído sobre um núcleo de transporte compartilhado e eficiente (TLS, reuso de conexão, autenticação, timeouts e retries), o cliente disponibiliza builders dedicados e fluentes para os principais padrões de comunicação web:
Consuma endpoints RESTful com métodos intuitivos (get, post, put, patch, del), parâmetros de rota/busca e extração direta de JSON ou mapeamento bidirecional de structs:
Conecte-se a serviços corporativos SOAP com geração automática de envelopes, gerenciamento de SOAPAction / Content-Type, streaming de tags XML e inspeção nativa de SOAP Faults:
Uma única instância de cliente gerencia configurações persistentes para todas as requisições — incluindo segurança TLS, cabeçalhos customizados, autenticação (Bearer, Basic, API Key, Cookies), retentativas automáticas e métricas de observabilidade:
Um cliente unificado. Vinculação direta de memória. Mínimo consumo de RAM.
Desempenho em Destaque¶
Comparativo medido em 100 requisições HTTP GET consecutivas com cargas JSON em um dispositivo ESP32 real:
| Métrica | Padrão (HTTPClient + ArduinoJson) | ESP32-HTTP-Client |
|---|---|---|
| Alocação de heap por requisição | ~58.2 KB | ~15 bytes |
| Pegada média de RAM | 34.2% | 24.3% |
| Heap livre mínima | 114.3 KB | 128.6 KB |
| Tempo médio de execução | ~750 ms | ~59 ms |
→ Veja a análise de desempenho completa
Instalação Rápida¶
Procure por ESP32-HTTP-Client no Gerenciador de Bibliotecas do Arduino IDE e clique em Instalar.
Baixe a última versão e coloque a pasta dentro do seu diretório Arduino/libraries/.
Início Rápido em 30 Segundos¶
#include <WiFi.h>
#include "ESP32HTTPClient.h"
ESP32HTTPClient client("https://jsonplaceholder.typicode.com");
void setup() {
Serial.begin(115200);
WiFi.begin("SEU_SSID", "SUA_SENHA");
while (WiFi.status() != WL_CONNECTED) delay(100);
int userId = 0;
// A API retorna: { "userId": 1, "id": 1, "title": "...", "completed": false }
client.get("/todos/1").getBody("userId", &userId);
Serial.printf("ID do Usuário: %d\n", userId);
}
void loop() {}
#include <WiFi.h>
#include "ESP32HTTPClient.h"
ESP32HTTPClient client("https://www.dataaccess.com");
void setup() {
Serial.begin(115200);
WiFi.begin("SEU_SSID", "SUA_SENHA");
while (WiFi.status() != WL_CONNECTED) delay(100);
char result[64] = {0};
// Envia requisição SOAP 1.1 e extrai diretamente a tag <m:NumberToWordsResult>
client.soap("/webservicesserver/NumberConversion.wso")
.soapAction("http://www.dataaccess.com/webservicesserver/NumberToWords")
.body("<NumberToWords xmlns=\"http://www.dataaccess.com/webservicesserver/\">"
"<ubiNum>500</ubiNum>"
"</NumberToWords>")
.getBody("NumberToWordsResult", result, sizeof(result));
Serial.printf("Resultado: %s\n", result);
}
void loop() {}
Se esta biblioteca economizou seu tempo, considere deixar uma ⭐ no GitHub.