ESP32 - HTTPS 요청 | ESP32 - HTTPS Request
이 튜토리얼은 당신에게 ESP32를 웹 서버, 웹 API, REST API, 웹 서비스에 사용하는 방법을 지시합니다...
HTTPS에 대하여
HTTPS는 데이터를 암호화하여 클라이언트와 서버 간에 데이터를 안전하게 교환한다는 점을 제외하고는 HTTP와 동일합니다.
따라서, HTTPS에 대해 배우기 위해서는 두 단계만 수행하면 됩니다:
- 먼저 HTTP 요청하는 방법을 배우세요
- 데이터를 암호화하는 방법을 배우세요. 다행히 데이터 암호화는 라이브러리에 의해 수행됩니다. URL에서 http를 https로 변경하기만 하면 HTTP가 HTTPS가 됩니다.
아래는 HTTPS 요청을 하는 두 가지 예입니다.
ESP32로 HTTPS GET 요청 및 데이터 전송을 위한 코드
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-https-request
*/
#include <WiFi.h>
#include <HTTPClient.h>
const char WIFI_SSID[] = "YOUR_WIFI_SSID"; // 변경하세요
const char WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD"; // 변경하세요
String HOST_NAME = "https://YOUR_DOMAIN.com"; // 변경하세요
String PATH_NAME = "/products/arduino"; // 변경하세요
//String PATH_NAME = "/products/arduino.php"; // 변경하세요
String queryString = "temperature=26&humidity=70";
void setup() {
Serial.begin(9600);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.println("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
HTTPClient http;
http.begin(HOST_NAME + PATH_NAME + "?" + queryString);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// file found at server
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
} else {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
void loop() {
}
HTTPS ESP32 코드로 HTTPS POST 요청하기 및 데이터 전송
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-https-request
*/
#include <WiFi.h>
#include <HTTPClient.h>
const char WIFI_SSID[] = "YOUR_WIFI_SSID"; // 변경하세요
const char WIFI_PASSWORD[] = "YOUR_WIFI_PASSWORD"; // 변경하세요
String HOST_NAME = "https://YOUR_DOMAIN.com"; // 변경하세요
String PATH_NAME = "/products/arduino"; // 변경하세요
//String PATH_NAME = "/products/arduino.php"; // 변경하세요
String queryString = "temperature=26&humidity=70";
void setup() {
Serial.begin(9600);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.println("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
HTTPClient http;
http.begin(HOST_NAME + PATH_NAME);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpCode = http.POST(queryString);
// httpCode will be negative on error
if (httpCode > 0) {
// server에서 파일을 찾음
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
} else {
// HTTP 헤더가 전송되었고 서버 응답 헤더를 처리했습니다.
Serial.printf("[HTTP] POST... code: %d\n", httpCode);
}
} else {
Serial.printf("[HTTP] POST... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
void loop() {
}