Код запроса ESP8266 GET -1
Я прочитал несколько других сообщений, но так и не смог решить проблему. Я пытаюсь подключиться к веб-сайту, который является HTTP (не HTTPS), но я всегда получаю код -1 в качестве ответа. Если я открываю ссылку в браузере, она работает хорошо. Не уверен, что мне не хватает? Вот мой полный код:
#include <ESP8266HTTPClient.h>
#include <esp8266wifi.h>
const char* ssid = "";
const char* password = "";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print("Connecting..");
}
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin("www.francescosoave.com/blind/getTime.php");
http.addHeader("Content-Type", "text/html");
int httpCode = http.GET();
Serial.print("HTTP CODE: ");
Serial.println(httpCode);
if(httpCode > 0){
String payload = http.getString();
Serial.print("PAYLOAD: ");
Serial.println(payload);
}
http.end();
}
delay(2000);
}
@SF1, 👍2
2 ответа
Лучший ответ:
Вы пропустили протокольную часть URL. Это требуется для реализации HttpClient.
Используйте http.begin("http://www.francescosoave.com/blind/getTime.php");
Не используйте заголовок Content-type
. Вы не отправляете никакого контента.
Включите отладку в меню "Инструменты". Установите для порта отладки значение Serial и уровень отладки для HTTP_CLIENT, чтобы видеть сообщения об ошибках.
чтобы добавить дополнительную точку к ответу @juraj, это HTTP
код для различных ошибок, написанный в ESP8266HTTPClient.h
#define HTTPCLIENT_DEFAULT_TCP_TIMEOUT (5000)
/// Ошибки HTTP-клиента
#define HTTPC_ERROR_CONNECTION_FAILED (-1)
#define HTTPC_ERROR_SEND_HEADER_FAILED (-2)
#define HTTPC_ERROR_SEND_PAYLOAD_FAILED (-3)
#define HTTPC_ERROR_NOT_CONNECTED (-4)
#define HTTPC_ERROR_CONNECTION_LOST (-5)
#define HTTPC_ERROR_NO_STREAM (-6)
#define HTTPC_ERROR_NO_HTTP_SERVER (-7)
#define HTTPC_ERROR_TOO_LESS_RAM (-8)
#define HTTPC_ERROR_ENCODING (-9)
#define HTTPC_ERROR_STREAM_WRITE (-10)
#define HTTPC_ERROR_READ_TIMEOUT (-11)
-1
обычно указывает на неверный URL
или плохое соединение Wi-Fi
- HTTP GET запрос с использованием Arduino Uno и ESP8266
- Как составить URL-адрес HTTP-запроса GET с параметрами ключ/значение
- ESP8266 Ошибка неверного запроса 400
- ESP8266 отправляет веб-страницу клиенту, но html-коды отображаются в браузере вместо веб-страницы
- Проанализировать большой ответ json с помощью ESP8266
- ESP8266 не отвечает через случайные промежутки времени
- esp32 http client response только 200 не получил данные после этого
- Как отправить HTTP-post данные в Node Express API с Arduino esp822 6?
-1 означает, что соединение не удалось. в этом случае из-за неправильного используемого порта из-за отсутствующей части протокола, @Juraj