http.getstring() 问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 386|回复: 3

[未解决] http.getstring() 问题

[复制链接]
发表于 2022-4-6 16:40 | 显示全部楼层 |阅读模式
大家好, 想请教一下, 我想从网站(https://www.1823.gov.hk/common/ical/sc.json) 读取香港假期的资料, 连接是沒问题 (httpResponseCode是200), 但从String payload=http.getstring()取回來的空的字串

我是用ESP8266 Nodemcu的开发板。

希望各位高手能帮忙一下...



 楼主| 发表于 2022-4-7 10:09 | 显示全部楼层
我的code如下:

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClient.h>

#define URL "https://www.1823.gov.hk/common/ical/tc.json"


const char* ssid = "ABCDE";
const char* password = "12345678";




void setup() {
  Serial.begin(9600);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("WiFi Connected!");
}

void loop() {
  if ((WiFi.status() == WL_CONNECTED)) {
    esp8266Http();
  }
  delay(5000);   
}

void esp8266Http() {

  HTTPClient httpClient;
  WiFiClientSecure wfClient;    //Declare object of class WiFiClient
  wfClient.setInsecure();

  httpClient.begin(wfClient, URL);
  Serial.print("URL: "); Serial.println(URL);

  int httpCode = httpClient.GET();
  Serial.print("Send GET request to URL: ");
  Serial.println(URL);

  if (httpCode == HTTP_CODE_OK) {
    String responsePayload = httpClient.getString();
    Serial.println("Server Response Payload: ");
    Serial.println(responsePayload);
  } else {
    Serial.println("Server Respose Code:");
    Serial.println(httpCode);
  }

  httpClient.end();
}

请大家帮忙!!!
发表于 2022-4-7 13:32 | 显示全部楼层
是不是不支持json格式
 楼主| 发表于 2022-4-7 15:03 | 显示全部楼层
看起來不是不支持的Json格式, 用了arduinoJson assistant去分析了资料是沒问题。

再研究了一下, 看似String太長沒法读入...刚用了getsize()去看, String length 是13213, 这肯定沒法读入了。
除了getstring(), 还有什么方法可以分段读入?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:37 , Processed in 0.082761 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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