Hallo zusammen,
Ich bin dabei eine kleine App zu entwickeln um meine Heizung zu steuern. Dafür möchte ich die von Hersteller entwickelte API benutzen. Hier ist eine Anleitung der API. Bis jetzt kann ich die Daten der Heizung von aus einer XML Datei unter einer URL auslesen. Nun muss ich aber auch die Daten unter der UML ändern können. Dafür versuche ich also ein HTTP Post auszuführen. Mein aktueller Code dafür sieht so aus:
public class PushData extends AsyncTask{
private final String postUrl = "http://192.168.178.38/data/changes.xml";
private final String postString = " <?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
" <Devices>\n" +
" <Device>\n" +
" <ID>EZR0114AF</ID>\n" +
" <HEATAREA nr=\"4\">\n" +
" <T_TARGET>18.7</T_TARGET>\n" +
" </HEATAREA>\n" +
" </Device>\n" +
" </Devices>";
@Override
protected Object doInBackground(Object[] objects) {
try {
URL url = new URL(postUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
String body = postString;
OutputStream output = new BufferedOutputStream(conn.getOutputStream());
output.write(body.getBytes());
output.flush();
Log.d("Success", postString);
} catch (ProtocolException e) {
e.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
}
return null;
}
}
Alles anzeigen
Im LogCat wird "Success, ..." ausgegeben deshalb gehe ich davon aus, dass der Code eigentlich stimmen sollt. Jedoch werden, wie ich in der XML Datei unter der Url ablesen kann, die Daten (In diesen Fall die Solltemperatur) nicht geändert. Ich habe leider keine Ahnung woran das liegt, da ich ja keine Exception geworfen bekomme. Liegt es vielleicht an der API, dass diese nicht richtig funktioniert? Wenn Ich die Adresse zu der ich meine Daten senden soll im Firefox öffnen möchte bekomme ich nur eine Fehlermeldung.
Ich freue mich über jede Meinung/Hilfe!
Liebe Grüße,
Jonas