Код запроса 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);
}

, 👍2


2 ответа


Лучший ответ:

4

Вы пропустили протокольную часть URL. Это требуется для реализации HttpClient.

Используйте http.begin("http://www.francescosoave.com/blind/getTime.php");

Не используйте заголовок Content-type. Вы не отправляете никакого контента.

Включите отладку в меню "Инструменты". Установите для порта отладки значение Serial и уровень отладки для HTTP_CLIENT, чтобы видеть сообщения об ошибках.

,

1

чтобы добавить дополнительную точку к ответу @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

,

-1 означает, что соединение не удалось. в этом случае из-за неправильного используемого порта из-за отсутствующей части протокола, @Juraj