שליחת בקשת HTTP עם אימות בסיסי

Arduino:
שליחת בקשת HTTP עם אימות בסיסי

איך לעשות:

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

const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
const char* serverName = "http://yourserver.com";
const char* httpUsername = "user";
const char* httpPassword = "pass";

WiFiClient client;
HTTPClient http;

void setup() {
  Serial.begin(115200);
  
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  
  if (http.begin(client, serverName)) {
    http.setAuthorization(httpUsername, httpPassword);
    int httpCode = http.GET();

    if (httpCode > 0) {
      String payload = http.getString();
      Serial.println(httpCode);
      Serial.println(payload);
    } else {
      Serial.println("Error on HTTP request");
    }

    http.end();
  }
}

void loop() {
  // Keep the loop empty if you don't need to perform actions continuously
}

זה דוגמה פשוטה לקוד שמתחבר ל-WiFi ושולח בקשת GET עם אימות בסיסי.

צלילה לעומק

בדיוק כמו בדפדפן, גם המיקרו-בקרים שלנו צריכים להיות מאומתים בפני שרתים. אימות בסיסי ב-HTTP הוא חלק ממודל אבטחת האינטרנט מאז שנות ה-90. גישה אלטרנטיבית לאימות היא OAuth, שהוא יותר מאובטח אך גם מורכב יותר להטמעה. בבקשה שלנו, אנחנו שולחים שם משתמש וסיסמה בצורה מקודדת בבייס64 בכותרת Authorization.

ראה גם