Arduino:
기본 인증을 사용한 HTTP 요청 보내기
How to: (어떻게 하나요?)
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "yourSSID";
const char* password = "yourPASSWORD";
const char* http_username = "user";
const char* http_password = "pass";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
HTTPClient http;
http.begin("http://example.com/data"); // Your URL
http.setAuthorization(http_username, http_password);
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() {
}
Sample Output:
200
{"data": "some response from server"}
Deep Dive (심층 분석)
HTTP 기본 인증은 오래된 방식이며, RFC7617에서 정의합니다. 보안은 기본이어서 중요한 데이터를 다룰 때는 더 안전한 OAuth와 같은 대안을 고려해야 합니다. ESP8266WiFi 라이브러리는 기본 인증을 쉽게 처리하는 메서드 setAuthorization
을 제공합니다. 이 메서드는 Base64로 사용자 이름과 비밀번호를 인코딩한 후 헤더에 추가하여 요청을 보냅니다.