Thread JSON::RPC::Client (6 answers)
Opened by Micha at 2017-07-02 19:46

Gast Micha
 2017-07-02 19:46
#186770 #186770
Hallo,

ich habe einen Mini-Python-Server am laufen, um über JSON-RPC Kommandos Applikationen auf einem entfernten Server zu starten. Nun nutze ich auf einem Rechner die Hausautomatisierungssoftware FHEM und möchte, auch direkt aus FHEM heraus, JSON-RPC Befehle absetzen. Dafür habe ich mit CPAN das PERL-MODUL JSON::RPC::Client installiert. Die Verbindung steht soweit, allerdings scheint der Nachrichteninhalt nicht vom Server akzeptiert zu werden.

Ich gebe den Nachrichteninhalt auf dem Server aus und vergleiche dabei mit einem Python JSON-RPC Client:

Request über Phython Client:
Code: (dl )
1
2
3
4
 * Running on http://192.168.1.125:4000/ (Press CTRL+C to quit)
{"jsonrpc": "2.0", "params": [], "method": "foobar", "id": 0}
['Starting Kodi\n', '/usr/bin/xinit already running.\n']
192.168.1.101 - - [02/Jul/2017 19:38:09] "POST /jsonrpc HTTP/1.1" 200 -


dagegen die Ausgabe bei einem Request über den Perl Client:
Code: (dl )
1
2
3
 * Running on http://192.168.1.125:4000/ (Press CTRL+C to quit)
{"params":[],"version":"1.1","jsonrpc":"2.0","method":"foobar","id":0}
192.168.1.101 - - [02/Jul/2017 19:39:23] "POST /jsonrpc HTTP/1.1" 200 -


Der Unterschied scheint bei
Code: (dl )
"version":"1.1"

zu liegen. Wenn ich diesen Literal bei dem Python-Client hinzufüge, dann wird auch hier die Callback-Funktion (startet Kodi) nicht mehr ausgeführt.

Nun die Frage, wie ich das Senden des "Versions" Literales unterdrückt bekomme.

Vielleicht hat jemand einen Tip für mich?
Last edited: 2017-07-02 20:32:09 +0200 (CEST)

View full thread JSON::RPC::Client