HTTP协议数据通讯02-客户端向服务器请求数据信息-客户端
客户端代码
/*
* 从服务端获取数据信息
* – 定时向服务器发送请求,从而获取服务器开发板上按钮状态
* – 将服务器端发来的按钮引脚电平状态解析为数字量,并且用该数字量控制板上LED点亮和熄灭
* 客户端代码
*/
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
ESP8266WiFiMulti wifiMulti;
const char *host = "192.168.0.111";
const int httpPort = 80;
void setup() {
Serial.begin(9600);
Serial.println("");
pinMode(LED_BUILTIN,OUTPUT);
digitalWrite(LED_BUILTIN,HIGH);
wifiMulti.addAP("1124","11241124");
Serial.println("Connecting...");
while(wifiMulti.run() != WL_CONNECTED){
delay(250);
Serial.println(".");
}
Serial.println("");
Serial.println("Connected to ");
Serial.println(WiFi.SSID());
Serial.println("IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
wifiClientRequest();
delay(300);
}
void wifiClientRequest(){
WiFiClient wifiClient; // 建立WiFiClient对象
bool buttonState;
Serial.print("Connecting to ");
Serial.println(host);
//连接服务器
if(wifiClient.connect(host,httpPort)){
Serial.println(" success!");
//建立客户端请求信息
String httpRequest = String("GET /update") + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n" +
"\r\n";
// 发送客户端请求
Serial.println("Sending request: ");
Serial.print(httpRequest);
wifiClient.print(httpRequest);
while (wifiClient.connected() || wifiClient.available()){
if(wifiClient.find("buttonState:")){
buttonState = wifiClient.parseInt();
Serial.print("buttonState: " );
Serial.println(buttonState);
}
}
}else{
Serial.println(" Failed!");
}
Serial.println("===============");
wifiClient.stop(); // 停止客户端 .stop(); // 停止客户端
buttonState == 0 ? digitalWrite(LED_BUILTIN,LOW) : digitalWrite(LED_BUILTIN,HIGH);
}