#include <ESP8266WiFi.h> // 引入 ESP8266WiFi 库 #include <WiFiClientSecure.h> // 引入 WiFiClientSecure 库

const char* ssid = '7-4'; // 定义 Wi-Fi 名称 const char* password = '120712071207'; // 定义 Wi-Fi 密码

const char* host = 'qyapi.weixin.qq.com'; // 定义请求的主机名 const int httpsPort = 443; // 定义 HTTPS 端口号

void setup() { Serial.begin(115200); // 初始化串口 delay(10);

WiFi.begin(ssid, password); // 连接 Wi-Fi

while (WiFi.status() != WL_CONNECTED) { // 等待 Wi-Fi 连接成功 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/nme9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录