Hallo,
auch auf die Gefahr hin, dass ich (trot 30 Minuten Suche) ein bestehendes Topic übersehen habe…
Kann mir jemand einen Tipp geben wie ich bei der neuen 3.0 Beta auf die „Native JSON-RPC Schnittstelle“ zugreifen kann?
Ich habe bereits einen Webserver angelegt, bei dem ich „Enable Json-RPC“ gesetzt habe und habe diesem den Port 81 sowie einen leeren Ordner mit Namen „rpc“ zugeordnet.
Leider kriege ich keine Verbindung mir dieser Schnittstelle aus VS 2012…
Hallo Paresy,
erst mal danke für die schnelle Antwort!
Ich habe den Endpunkt so wie angegeben und es nochmal versucht.
Kriege dann folgende Meldung:
Fehler beim Herunterladen von „http://192.168.2.106:81/api/$metadata“.
Anforderung nicht erfolgreich mit HTTP-Status 404: Not Found.
Metadaten enthalten einen Verweis, der nicht aufgelöst werden kann: „http://192.168.2.106/api“.
Es war kein an http://192.168.2.106/api lauschender Endpunkt vorhanden, der die Nachricht annehmen konnte. Dies wird häufig durch eine fehlerhafte Adresse oder SOAP-Aktion verursacht. Weitere Details finden Sie unter „InnerException“, sofern vorhanden.
Fällt Dir hierzu auf die schnelle noch was ein?
Falls nicht mache ich mich mal in den VS und JSON Foren schlau…
Wie müsste denn dieser Aufruf für die neue API aussehen? Alle Abwandlungen, die ich bisher probiert habe, waren leider nicht unbedingt von Erfolg gekrönt… :o
@Detlef: Ich weiß nicht, wie deine Library für VS.NET funktioniert. Aber in der offiziellen JSON-RPC Doku gibt es keine $metadata Erweiterung die wie z.B. bei SOAP per WSDL die Dienste beschreibt. Du musst also eher direkt im Quellcode einfach die Funktion + Parameter angeben und ausführen.
Hatte zwar vor Paresys Lösung schnellstmöglich auszuprobieren.
Komme aber Jobbedingt gerade nicht dazu.
Werde aber hier posten sobald ich EWrgebnisse habe…
bin ich nung gekommen.
Habe die ganze Anfrage in C reingepackt und es schient nun auch soweit mal zu laufen.
Allerdings steht in der Response welche ich nach dem Request an „http://192.168.2.106/api“ kriege drin, dass der Remote Srver den Fehler „Not found“ sendet.
Ich habe spaßeshalber mal als Port den meines normalen Webfront genommen und bei der Anfrage das „/api“ weggelassen.
In dem Fall zeigt mir der Debugger in Visual Studion zumindest eine Response mit gültigem Inhalt an…
Wenn ich auf den normalen Webfront Port die JSON Option aktiviere und es dann mit „…/api“ probiere kriege ich die gleiche Meldung wie auf Port 81/api…
Scheint also als ob der Request zwar auf dem richtigen Port ankommt, hinter /api aber keinen Abnehmmer findet. Oder sehe ich das falsch?
So, hab’s mittlerweile über normalen HTTP Request geschafft auf die JSON RPC zuzugreifen und konnte die JSON Daten auch deserialisieren.
Mal schauen was sich damit anfangen lässt.
Im Prinzip muss nur noch einmal im Skript das $rpc Objekt erstellt werden und dann schreibt ihr vor den normalen IP-Symcon Befehl das $rpc-> und schon wird der Befehl auf einem anderen IP-Symcon Server ausgeführt!