Wenn ich mir die Antwort des Webservers mit Serial.print(line) ausgebe, kommt manchmal nichts. Wenn ich den delay() erhöhe auf zB 3 kommt die Antwort vom Webserver zu ca 90% an, in ca 10% kommt einfach nichts.
Das Script auf dem Server macht Einträge in die Datenbank und wenn diese erfolgreich waren kommt ein Status=OK.
Die Datenbank Einträge werden interessanterweise in jedem Fall geschrieben. Es scheint als würde die Antwort unterwegs zum Arduino verloren gehen.
boolean postStatus(String Nachricht) {
boolean booReturn;
if (client.connect(WebServerIP,SMARTHOMESERVER_PORT)) {
//POST an Webserver
client.println(F("POST /input_arduino.php HTTP/1.1"));
client.print(F("Host: "));
client.println("192.168.1.170");
client.println(F("Content-Type: application/x-www-form-urlencoded"));
client.println(F("Connection: close"));
client.println(F("User-Agent: Arduino/1.0"));
client.print(F("Content-Length: "));
client.println(Nachricht.length());
client.println();
client.print(Nachricht);
client.println();
//Antwort vom Webserver
delay(1);
while (client.available()) {
String line = client.readStringUntil('\n');
if (line.indexOf("Status=OK") >= 0) {
booReturn = true;
}
Serial.println();
Serial.print(line);
}
client.stop();
}else{
Serial.println(F("Keine Verbindung zum Webserver!"));
booReturn = false;
}
return booReturn;
}