Библиотека Arduino HTTPClient.h - проблема POST - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь отправить некоторые данные на свой сервер, и у меня возникают некоторые проблемы. Код выглядит следующим образом:

  HTTPClient http;
  http.begin("http://192.168.1.165/index.php");  //Specify destination for HTTP request
  int httpCode = http.GET();
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");             //Specify content-type header
  int httpResponseCode = http.POST("name=abcd&status=on");

  if (httpResponseCode > 0) {

    String response = http.getString();                       //Get the response to the request
    String payload = http.getString();
    Serial.println(httpCode);
    Serial.println(payload);
    Serial.println(httpResponseCode);   //Print return code
    Serial.println(response);           //Print request answer

  } else {
    Serial.print("Error on sending POST: ");
    Serial.println(httpResponseCode);
  }

Я думаю, что я пробовал все варианты строк в пост-функции и имени сервера, и лучший результат, который я получаю, это «Неопределенный индекс: имя в ...», что, вероятно, означает, что не правильно прочитал адрес URL (или он вообще не отправляется?). Когда я набираю его вручную в веб-браузере, он работает просто отлично. Я даже пытался отправить только одно значение - результат тот же. Я пытался найти решение, но не смог, и я просто не знаю, в чем может быть проблема.

1 Ответ

0 голосов
/ 10 марта 2020

Вы вызываете два HTTP-метода для одного и того же соединения. Это не сработает.

Ваша строка

  int httpCode = http.GET();

выполняет HTTP-GET для URL, который вы указали в вызове begin().

Удалите эту строку и также удалите

    Serial.println(httpCode);

, чтобы вы не получили ошибку из-за отсутствия httpCode.

...