Запрос POST не работает

Я следую руководству по хранению данных датчиков в MySQL:

Руководство

Мой запрос POST не возвращает никаких результатов на мой сервер. Сейчас я только сохраняю температуру.

Вот мой код для сохранения данных:

void sendData(double input) {
  String data = "sensorid=3000000&temp=" + doubleToString(input, 2) + "&hum=1.2";
  
  if (client.connect("192.168.1.50", 80)) {
    client.println("POST /arduino/add.php HTTP/1.1");
    client.println("Host: 192.168.1.50");
    // client.println("User-Agent: Arduino/1.0");
    // client.println("Connection: close");
    client.println("Content-Type: application/x-www-form-urlencoded");
    client.print("Content-Length: ");
    client.print(data.length());
    client.println();
    client.print(data);

    Serial.println("Sent data: " + data);
  }
  
  if (client.connected()) {
    client.stop(); 
  }

  delay(300000);
}

Я закомментировал два заголовка, так как это не дало никаких других результатов. Мой Serial.println выдает: Отправленные данные: sensorid=3000000&temp=24.00&hum=1.2, что означает, что Arduino подключен к указанному IP-адресу и что мои данные запроса такие, как мне нужно. Они также отлично работают, когда я тестирую с помощью Requestmaker, поэтому я почти уверен, что моя ошибка связана с тем, как я делаю запрос здесь.

Есть ли у вас какие-либо идеи, как я могу решить или отладить эту проблему?

, 👍0


1 ответ


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

1

Ответил Эдгар Бонет

Между заголовками и телом запроса должна быть пустая строка. Поэтому вам нужно println() (а не print()) конец последнего заголовка.

,