HTTP协议数据通讯02-客户端向服务器请求数据信息-客户端

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);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值