Enviando una solicitud http con autenticación básica

Arduino:
Enviando una solicitud http con autenticación básica

Cómo se hace:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Base64.h>

const char* ssid = "tu_SSID";
const char* password = "tu_contraseña";
const char* httpServer = "http://tuservidor.com";
const char* user = "tu_usuario";
const char* pass = "tu_contraseña_http";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Conectando al WiFi...");
  }

  HTTPClient http;
  http.begin(httpServer);
  
  String auth = user + ":" + pass;
  auth = base64::encode(auth);
  http.addHeader("Authorization", "Basic " + auth);

  int httpCode = http.GET();
  if (httpCode > 0) {
    String payload = http.getString();
    Serial.println(httpCode);
    Serial.println(payload);
  } else {
    Serial.println("Error en la solicitud: " + http.errorToString(httpCode));
  }
  http.end();
}

void loop() {
  // Aquí el código que repetirá tu Arduino.
}

Profundizando

Enviar una solicitud HTTP con autenticación básica no es nada nuevo; ha existido prácticamente desde los inicios del protocolo HTTP. Alternativas modernas incluyen OAuth y tokens JWT, que proporcionan una seguridad más robusta. La autenticación básica codifica simplemente el usuario y la contraseña con Base64, lo cual puede ser decodificado fácilmente si la conexión no está asegurada con SSL/TLS. Implementar autenticación básica en Arduino involucra usar la biblioteca ESP8266HTTPClient para manejar la conexión HTTP, y la biblioteca Base64 para la codificación requerida.

Ver además