Hallo zusammen,
ich versuche mit Hilfe eines WeMos D1 Mini Pro einen Repetier-Server (Druckserver für 3D-Drucker) über sein API anzusprechen. Die Datenübermittlung funktioniert und der Server reagiert auch auf die Anfragen, nur bekomme ich die Rückgabe nicht zum laufen.
der Aufruf der Seite geschieht im Browser über
die Rückgabe im Browser wäre dann z.B:
[{"active":true,"job":"none","name":"Ultimaker_2+","online":1,"pauseState":0,"paused":false,"slug":"Ultimaker_2"}]
Im Browser funktioniert es wunderbar. Die W-Lan Verbindung des WeMos funktioniert und wenn ich im Ausführung-Commandos schicke welche keine Rückmeldung haben, läuft es auch. Also scheint die Kommunikation nicht das Problem zu sein.
Die Verkürzte Version meines Quellendes sieht wie folgt aus:
const String listPrinter = "&a=listPrinter";
#include <ESP8266HTTPClient.h>
#include <WiFiManager.h>
String API = "637d4996-c02b-4d3e-8d78-9feb18978c60";
String ipAdressRepetierServer = "192.168.8.22";
String portRepetierServer = "3344";
void setup() {
Serial.begin(115200);
// W-Lan aktiviren
init_WLAN();
}
void loop() {
sendDataToServer2();
delay(500000);
}
void sendDataToServer2() {
HTTPClient http;
String dummyURL = "http://" + ipAdressRepetierServer + ":" + portRepetierServer + "/printer/api/Ultimaker_2?apikey=" + API + listPrinter;
Serial.println(dummyURL);
http.begin(dummyURL);
// Send HTTP GET request
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
Serial.print("HTTP Response code (2): ");
Serial.println(httpResponseCode);
String payload = http.getString();
Serial.println(payload);
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
// Free resources
http.end();
}
void init_WLAN() {
WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP
// add a custom input field
int customFieldLength = 40;
const char* custom_radio_str = "
<label for='customfieldid'>Custom Field Label</label><input type='radio' name='customfieldid' value='1' checked> One
<input type='radio' name='customfieldid' value='2'> Two
<input type='radio' name='customfieldid' value='3'> Three";
new (&custom_field) WiFiManagerParameter(custom_radio_str); // custom html input
wm.addParameter(&custom_field);
wm.setSaveParamsCallback(saveParamCallback);
std::vector<const char *> menu = {"wifi", "info", "param", "sep", "restart", "exit"};
wm.setMenu(menu);
// set dark theme
wm.setClass("invert");
wm.setConfigPortalTimeout(30); // auto close configportal after n seconds
drawConfigScreen();
connection = wm.autoConnect("AutoConnectAP", "password"); // password protected ap
if (!connection) {
Serial.println("Failed to connect or hit timeout");
ESP.restart();
}
else {
//if you get here you have connected to the WiFi
Serial.println("connected...yeey :)");
wlanConnectScreen();
}
}
Im Log erhalte ich dann:
23:09:15.245 -> http://192.168.8.22:3344/printer/api/Ultimaker_2?apikey=637d4996-c02b-4d3e-8d78-9feb18978c49&a=listPrinter
23:09:15.280 -> HTTP Response code (2): 200
23:09:15.280 ->
Auch wenn ich die länge der Antwort auslese kommt 0 raus.
Der Code soll nachdem was ich gefunden habe ja heissen, dasss die übergäbe geklappt hat.
Jemand eine Idee, was ich falsch mache?
Grüße
Steve