Moin zusammen,
ich probiere mich momentan an der EASY JSON API und bis jetzt hat alles wunderbar funktioniert: Ausgänge und Eingänge lesen, Merker lesen und schreiben. Aber bei den Funktionsblöcken stoße ich auf einen Fehler, den ich nicht beheben kann.
Meine CMD-Ausgabe sieht so aus:
EASY Mode
RUN
API-Antwort: [{"T1(2;0;2000)": 0, "SUCCESS": 0}]
API-URL: 192.168.1.2/api/set/par?op=FB&v1=T1(2;0;2000)
Timer I1
Fehler: HTTP Response Code 401
URL: 192.168.1.2/api/get/adm?elm=FBT1(2;1)
Timer Q1
Fehler: HTTP Response Code 401
URL: 192.168.1.2/api/get/adm?elm=FBT1(1;0)
Timer QV
Fehler: HTTP Response Code 401
URL: http://192.168.1.2/api/get/adm?elm=FBT1(3;0)
Timer EN
Fehler: HTTP Response Code 401
URL: 192.168.1.2/api/get/adm?elm=FBT1(0;0)
In der ersten Zeile wird der EASY Mode abgefragt. Dann habe ich als Test dem Timer einen neuen Zeitwert übergeben, also die Schreibfunktion ist gegeben, was bedeutet, dass die Berechtigung auch vorhanden ist. Jetzt kommt mein Problem: Egal welchen Pin ich vom Timer ansprechen will, es tritt immer derselbe Fehler auf. Die URL ist korrekt erstellt und der User hat die notwendigen Berechtigungen. Ich habe die API-Anfrage sowohl mit Benutzername/Passwort als auch mit API-Schlüssel probiert, beides mit demselben Fehler.
Da die Schreibfunktion funktioniert, kann es nicht an den Berechtigungen liegen.
Hier ist der relevante Code:
java
public String getFunctionBlocks(int index, String fBlock, int pinType, int pinPosition) {
try {
String endpoint = String.format("/get/adm?elm=FB%s%d(%d;%d)",
URLEncoder.encode(fBlock, StandardCharsets.UTF_8),
index, pinType, pinPosition);
String response = apiKeySendGetRequest(endpoint);
if (response != null) {
System.out.println("API-Antwort: " + response);
System.out.println("API-URL: " + baseUrl + endpoint);
return response;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Hat jemand eine Idee, woran es liegen könnte? Danke im Voraus für eure Hilfe!