【求助】8266无法访问获取API响应-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1218|回复: 1

【求助】8266无法访问获取API响应

[复制链接]
发表于 2021-8-9 06:23 | 显示全部楼层 |阅读模式
本帖最后由 问题有点大 于 2021-8-9 06:33 编辑

开发板是NodeMCU,用的库是blinker.h(只是用来联网的)。具体问题为开发板无法从https://api.miri.site/mcPlayer/get.php?ip=bm.lafamc.com&port=996这个网址获取响应(但是电脑浏览器访问这个网址能正常获取响应)。开发板能正常从B站获取响应。望大佬解惑
代码如下
  1. #define BLINKER_WIFI
  2. #include <Blinker.h>

  3. StaticJsonDocument<1024> doc;

  4. char auth[] = "";
  5. char ssid[] = "";
  6. char pswd[] = "";

  7. const String Url = "https://api.miri.site/mcPlayer/get.php?ip=bm.lafamc.com&port=996";//API

  8. int online_max = 2019;   //在线人数上限
  9. int online = 0;  //实际在线人数

  10. String  player_list[20];
  11. char player_temp;

  12. // 新建组件对象
  13. BlinkerButton Button1("btn-abc");
  14. BlinkerNumber Number1("num-abc");

  15. // 按下按键即会执行该函数
  16. void button1_callback(const String & state) {
  17.   BLINKER_LOG("get button state: ", state);
  18.   digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  19. }

  20. // 如果未绑定的组件被触发,则会执行其中内容
  21. void dataRead(const String & data) {
  22.   BLINKER_LOG("Blinker readString: ", data);
  23. }

  24. void setup() {
  25.   // 初始化串口
  26.   Serial.begin(115200);
  27.   BLINKER_DEBUG.stream(Serial);
  28.   BLINKER_DEBUG.debugAll();

  29.   // 初始化有LED的IO
  30.   pinMode(LED_BUILTIN, OUTPUT);
  31.   digitalWrite(LED_BUILTIN, HIGH);
  32.   // 初始化blinker
  33.   Blinker.begin(auth, ssid, pswd);
  34.   Blinker.attachData(dataRead);
  35.   Blinker.attachDataStorage(dataStorage);

  36.   Button1.attach(button1_callback);
  37. }

  38. void loop() {
  39.   Blinker.run();
  40.   getFollower(Url);
  41. }

  42. void dataStorage()
  43. {
  44.     Blinker.dataStorage("players", online);
  45. }

  46. void getFollower(const String &  url) { //获取信息
  47.   HTTPClient http;
  48.   client.setTimeout(10000);

  49.   http.begin(url);
  50.   int httpCode = http.GET();
  51.   Serial.printf("[HTTP] GET... code: %d\n", httpCode);
  52.   
  53.   if (httpCode > 0){
  54.     Serial.println("Get OK");
  55.     String resBuff = http.getString();
  56.     Serial.println(resBuff);
  57.     DeserializationError error = deserializeJson(doc, resBuff);
  58.     //    if (error)
  59.     //    {
  60.     //      Serial.println(F("deserializeJson() failed: "));
  61.     //      return;
  62.     //    }

  63.     online_max = doc["max"];
  64.     Serial.print("max:");
  65.     Serial.println(online_max);

  66.   }
  67.   else{
  68.     Serial.println("[HTTP] GET... failed");
  69.   }
  70.   http.end();
  71.   Blinker.delay(10000);
  72. }
复制代码


 楼主| 发表于 2021-8-9 09:18 | 显示全部楼层
目前明白了我的代码是用于http的,https好像还要证书来访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 06:54 , Processed in 0.072985 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表