Ich lese über VBScript via JSON-RPC Variablenwerte aus. Weil es sich um rund 60 Werte handelt, würde ich von den Profis gerne wissen, ob meine Variante akzeptabel ist oder ob das effizienter geht als mit den vielen einzelnen HTTP POSTs.
Im folgenden Beispiel sind es natürlich nur zwei Variablen und die Weiterverarbeitung wird keine MsgBox sein
Dim rpc
Set rpc = CreateObject("MSXML2.XMLHTTP")
'-----------------------------------------------
rpc.open "POST", "http://10.10.11.2:83/api/", false
rpc.setRequestHeader "Authorization", "Basic 1234"
befehl = "GetValueFormatted"
parameter = "10831"
rpc.send "{" & Chr(34) & "jsonrpc" & Chr(34) & ":" & Chr(34) & "2.0" & Chr(34) & "," & Chr(34) & "method" & Chr(34) & ":" & Chr(34) & befehl & Chr(34) & "," & Chr(34) & "params" & Chr(34) & ":[" & parameter & "]," & Chr(34) & "id" & Chr(34) & ":" & Chr(34) & "null" & Chr(34) & "}"
msgbox rpc.responseText
'-----------------------------------------------
rpc.open "POST", "http://10.10.11.2:83/api/", false
rpc.setRequestHeader "Authorization", "Basic 1234"
befehl = "GetValueFormatted"
parameter = "50246"
rpc.send "{" & Chr(34) & "jsonrpc" & Chr(34) & ":" & Chr(34) & "2.0" & Chr(34) & "," & Chr(34) & "method" & Chr(34) & ":" & Chr(34) & befehl & Chr(34) & "," & Chr(34) & "params" & Chr(34) & ":[" & parameter & "]," & Chr(34) & "id" & Chr(34) & ":" & Chr(34) & "null" & Chr(34) & "}"
msgbox rpc.responseText
Set rpc = Nothing
(Sollt jemand den Code verwenden wollen, muss die Authorization [1234] ersetzt werden durch ‚benutzername:passwort‘ konvertiert in einen Base64 String und natürlich die IP-Adresse und Port entsprechend angepasst werden.)
Danke für Hinweise