Wobei mir schleierhaft ist, wie Du die Unterscheidung zwischen Integer und Float hinbekommst. Der JSON Standard kennt doch nur „Number“. In Perl kann ich wahrscheinlich deswegen auch keine 22.0 übergeben, höchstens als String, ansonsten macht das JSON Modul konsequent immer 22 draus.
also entweder bin ich zu blöd, oder die Schnittstelle ist recht zickig:
http.exe --json POST http://user:passwd@127.0.0.1/api/ jsonrpc=2.0 method=SetValue params:=[25181,test] id=null
liefert http: error: AttributeError: ‚ParseError‘ object has no attribute ‚message‘.
http.exe --json POST http://user:passwd@127.0.0.1/api/ jsonrpc=2.0 method=SetValue params:='[25181,test]' id=null
liefert wieder ein "Invalid Request -32600.
Auch den String noch mal in Anführungszeichen setzen bringt keinen Erfolg. Ich habe jetzt alles mögliche durchprobiert, komme aber auf keine Lösung.
http.exe --json POST http://user:passwd@127.0.0.1/api/ jsonrpc=2.0 method=SetValue params:=[25181,"test"] id=null
Wenn bei Params := nutzt musst du korrektes JSON angeben. Du kannst es jederzeit hier validieren: http://jsonlint.com/
Da ist dann übrigens das HTTPie Tool sehr genau. Nicht die API. Aber die API will es auch alles korrekt haben
mit Deinem Aufruf bekomme ich einen „Parse error no Attribute Message“.
Wenn ich die Parameter so aufbaue, das der json Validierer sagt ok bleibt es bei einem Parse error.
Habe auch id=1 getestet, und wieder einige anderes Versionen.
http.exe --json POST http://user:passwd@127.0.0.1/api/ jsonrpc=2.0 method=SetValue params:='[25181,"test"]' id=null
So auch nicht? Die Fehlermeldung kommt auf jeden Fall von HTTPie. Wenn Invalid Request kommt, kommt es von IPS. Kannst du mir mit dem o.g. Befehl diese Debug-Ausgabe vom ersten Beitrag reinkopieren, sofern Invalid Request kommt?