为ESP12F模块用Arduino写一个代码连接名为7-4的wifi密码为120712071207用GET的方式访问httpsqyapiweixinqqcomcgi-bingettokencorpid=ww14719343a72136f2&corpsecret=DdrjdjJEL-rBPuOGVAyu_FoX5jHM2lSyQKAC0vDmVnU连接方式采用https并返回网页源码并且判断返回的源
#include <ESP8266WiFi.h> // 引入ESP8266WiFi库 #include <WiFiClientSecure.h> // 引入WiFiClientSecure库
const char* ssid = "7-4"; // 定义wifi名称 const char* password = "120712071207"; // 定义wifi密码
const char* host = "qyapi.weixin.qq.com"; // 定义请求的主机名 const int httpsPort = 443; // 定义https端口号
void setup() { Serial.begin(115200); // 初始化串口 delay(10);
WiFi.begin(ssid, password); // 连接wifi
while (WiFi.status() != WL_CONNECTED) { // 等待wifi连接成功 delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected");
WiFiClientSecure client; // 创建WiFiClientSecure对象 Serial.print("Connecting to "); Serial.println(host);
if (!client.connect(host, httpsPort)) { // 连接到主机 Serial.println("Connection failed"); return; }
String url = "/cgi-bin/gettoken?corpid=ww14719343a72136f2&corpsecret=DdrjdjJEL-rBPuOGVAyu_FoX5jHM2lSyQKAC0vDmVnU"; // 定义请求的url Serial.print("Requesting URL: "); Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" + // 发送GET请求 "Host: " + host + "\r\n" + "User-Agent: BuildFailureDetectorESP8266\r\n" + "Connection: close\r\n\r\n");
Serial.println("Request sent"); }
void loop() { WiFiClientSecure client; // 创建WiFiClientSecure对象 if (!client.connect(host, httpsPort)) { // 重新连接到主机 Serial.println("Connection failed"); return; }
String url = "/cgi-bin/gettoken?corpid=ww14719343a72136f2&corpsecret=DdrjdjJEL-rBPuOGVAyu_FoX5jHM2lSyQKAC0vDmVnU"; // 定义请求的url Serial.print("Requesting URL: "); Serial.println(url);
client.print(String("GET ") + url + " HTTP/1.1\r\n" + // 发送GET请求 "Host: " + host + "\r\n" + "User-Agent: BuildFailureDetectorESP8266\r\n" + "Connection: close\r\n\r\n");
Serial.println("Request sent");
while (client.connected()) { // 等待响应 String line = client.readStringUntil('\n'); if (line == "\r") { // 响应头结束 break; } }
String response = client.readString(); // 读取响应
if (response.indexOf(""errmsg":"ok"") != -1) { // 判断响应是否包含"errmsg":"ok" Serial.println("zhengque"); } else { Serial.println("cuowu"); }
int start = response.indexOf(""access_token":"") + 17; // 取出"access_token":"和","expires_in"中间的字符 int end = response.indexOf("","expires_in""); String token = response.substring(start, end); Serial.println(token);
delay(5000); // 每隔5秒钟请求一次 }
原文地址: https://www.cveoy.top/t/topic/b1K8 著作权归作者所有。请勿转载和采集!