ESP32-S3 — HttpClient возвращает только код состояния 200 без данных полезной нагрузки JSON

У меня есть плата ESP-S3, и я пытаюсь получить данные JSON с нашего сервера. Я использую следующий код (см. ниже) в качестве основы для своего.

Этот код работает. Если я изменюсь

http://jsonplaceholder.typicode.com/comments?id=10

к http://mywebsite.com

Я получаю HTML-код главной страницы нашего сервера.

Если я потом изменю

http://mywebsite.com

в

http://mywebsite.com/profiles

Я получаю код состояния 200, но не JSON.

Я набираю http://mywebsite.com/profiles в браузере, он возвращает JSON или, если я использую postman и делаю GET на http://mywebsite.com/profiles возвращает JSON.

Похоже, этот вопрос был опубликован пару лет назад: отклик http клиента esp32 только 200 не получил данные после этого

Буду очень признателен за любое понимание того, что я делаю неправильно.

#include <WiFi.h>
#include <HTTPClient.h>
 
const char* ssid = "yourNetworkName";
const char* password =  "yourPassword";
 
void setup() {
 
  Serial.begin(115200);
  delay(4000);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
 
  Serial.println("Connected to the WiFi network");
 
}
 
void loop() {
 
  if ((WiFi.status() == WL_CONNECTED)) { //Проверяем текущий статус соединения
 
    HTTPClient http;
 
    http.begin("http://jsonplaceholder.typicode.com/comments?id=10"); //Указываем URL
    int httpCode = http.GET();                                        // Делаем запрос
 
    if (httpCode > 0) { // Проверяем код возврата
 
        String payload = http.getString();
        Serial.println(httpCode);
        Serial.println(payload);
      }
 
    else {
      Serial.println("Error on HTTP request");
    }
 
    http.end(); //Освобождаем ресурсы
  }
 
  delay(10000);
 
}

, 👍1

Обсуждение

насколько велик ответ JSON? Там не так много места для больших ответов. Попробуйте меньший ответ и посмотрите, не получите ли вы по-прежнему ничего., @dandavis

Я не могу воспроизвести то, что вы испытали, ваш код работает отлично, и я вернул json. Единственная разница в том, что я использую ESP32 вместо ESP32S3. Возможно, вы попытаетесь поменять местами строки между String payload = http.getString(); и Serial.println(httpCode);, это может дать достаточно времени для полного получения полезной нагрузки., @hcheung

dandavis - это определенно то, что нужно проверить. Спасибо за предложение. hcheung - приведенный выше код работает и для меня. Это терпит неудачу, когда я использую свой сервер., @BAW

дандавис - вот в чем была проблема. сработал меньший размер ответа., @BAW