esp8266访问有Authorization的http
时间: 2024-09-19 11:11:07 浏览: 33
ESP8266访问需要Authorization(授权)的HTTP服务器时,通常需要在HTTP请求中附带身份验证凭证。这通常是通过添加包含基本认证信息(用户名和密码)的Authorization头部字段实现。以下是如何在ESP8266的HTTPClient中做到这一点的一个例子:
```cpp
#include <ESP8266HTTPClient.h>
const char* username = "your_username";
const char* password = "your_password";
const char* authHeader = "Basic " + base64::encode(username + ":" + password);
HTTPClient http;
String url = "http://your_server.com/protected_resource";
void setup() {
// ... WiFi连接...
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
http.begin(url);
http.addHeader(F("Authorization"), authHeader); // 添加Authorization header
int responseCode = http.GET(); // 发送GET请求
if (responseCode == 200) { // 如果返回200表示成功
String responseBody = http.getString();
Serial.println(responseBody);
} else {
Serial.print("Failed to access resource: ");
Serial.println(http.statusCode());
}
http.end();
} else {
Serial.println("WiFi not connected");
}
delay(5000);
}
```
在这个示例中,我们使用base64编码将用户名和密码组合成Authorization header的基本格式。然后,在发起HTTP请求时,我们将其添加到headers中。
阅读全文