本篇讲述开发板作为HTTP 客户端,与服务端通讯,获取消息文本。
一.了解HTTP
HTTP,超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。
二.代码准备
1.打开HTTP Client工程。
2.初始化,添加路由账号密码
3.运行主程序。连接上WiFi后,设置服务端url,Get消息,获取成功则将消息打印出来,获取失败打印失败码。
void loop() {
// wait for WiFi connection
if ((wifiMulti.run() == WL_CONNECTED)) {
USE_SERIAL.print("Wifi connected!\n");
HTTPClient http;
USE_SERIAL.print("[HTTP] begin...\n");
// configure traged server and url
//http.begin("https://www.howsmyssl.com/a/check", ca); //HTTPS
http.begin("http://example.com/index.html"); //HTTP
USE_SERIAL.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if (httpCode > 0) {
// HTTP header has been send and Server response header has been handled
USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if (httpCode == HTTP_CODE_OK) {
String payload = http.getString();
USE_SERIAL.println(payload);
}
} else {
USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
delay(5000);
}
4.HTTP Client码可在HTTPClient.h头文件中看到定义,包括经典的404
三.测验
编译烧录后,打开串口.可看到初始化连接WIFI成功,客户端GET服务端消息成功会将消息打印,失败会打印出原因。日志如下
至此,成功运行HTTPClient功能。