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);
}
@BAW, 👍1
Обсуждение0
Смотрите также:
- передать «большой» массив измерений на сервер через Wi-Fi
- Библиотека WiFi.h, проблемы с client.print()
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Контакты RX и TX на esp32
- Максимальное количество подключений точки доступа ESP32: 4 или 10?
- Почему OTA не работает с платой ESP32-CAM Ai-Thinker?
- ESP32 открывает "captive portal" при подключении
- Аналоговое чтение не работает при использовании WiFi
насколько велик ответ JSON? Там не так много места для больших ответов. Попробуйте меньший ответ и посмотрите, не получите ли вы по-прежнему ничего., @dandavis
Я не могу воспроизвести то, что вы испытали, ваш код работает отлично, и я вернул json. Единственная разница в том, что я использую ESP32 вместо ESP32S3. Возможно, вы попытаетесь поменять местами строки между
String payload = http.getString();
иSerial.println(httpCode);
, это может дать достаточно времени для полного получения полезной нагрузки., @hcheungdandavis - это определенно то, что нужно проверить. Спасибо за предложение. hcheung - приведенный выше код работает и для меня. Это терпит неудачу, когда я использую свой сервер., @BAW
дандавис - вот в чем была проблема. сработал меньший размер ответа., @BAW