http json-lookup()

Prev Next

Mit dieser Funktion kann man eine JSON-Datei per HTTP auslesen. Dabei wird die komplette Datei als JSON-Objekt einlesen, welches man dann später abfragen kann, siehe Funktion execute json xpath().

Der Rückgabewert der Funktion ist der HTTP-Response-Status-Code, wenn Parameter d nicht verwendet wird. Mit Parameter d kann man einen JSONPath-Ausdruck auf das JSON-Objekt anwenden. Der Rückgabewert der Funktion ist dann das Ergebnis dieses JSONPath-Ausdrucks.

Parameter

Parameter

Beschreibung

a

Die URL, über die die JSON-Datei abgefragt werden soll. Beispiel: http://example.com

b

(optional) Fall true, dann erfolgt die HTTP-Abfrage über den DMZ-Server (falls dieser existiert). Default: false.

c

Schlüsselname des zu erzeugenden JSON-Objekts im Cache.

d

Der JSONPath-Abfrage-Ausdruck.

e

(optional) Die zu verwendende HTTP-Methode. Verwenden Sie zur Auswahl eines Wertes die drei Punkte. Default: GET.

f

Wenn hier die ID eines HTTP-Kanals angegeben wird, dann erfolgt die HTTP-Abfrage über die dort angegebenen Verbindungsparameter. Das kann z. B. nötig sein, wenn eine Authentifizierung erforderlich ist. Hinweis: Sie können über den Button mit den drei Punkten einen Kanal auswählen und bekommen dann direkt die ID geliefert.

g

Will man weitere HTTP-Header in der HTTP-Anfrage verwenden (oder vorhandene überschreiben), kann hier der Name einer Map angegeben werden. Der Schlüssel eines Eintrags in der Map muss der Name des HTTP-Headers sein und der Wert des Eintrags ist dann der Wert für diesen HTTP-Header.

Siehe auch Abschnitt “Datei zum Request-Body hinzufügen” unten.

h

Body-Daten (nicht für GET, HEAD, DELETE).

i

(optional) Falls false, dann wird eine aufgetretene Exception ignoriert. Default: <leer> (== false).

j

(optional) Die Zeichenkodierung. Default: UTF-8.

k

(optional) Timeout in Sekunden. Default: 90.

l

(optional) Anzahl an Versuchen (Retries). Default: 0. Hinweis: Diese Einstellung greift nur, wenn kein Statuscode zurück geliefert wird. Kommt ein Statuscode 4xx oder 5xx zurück, wird kein Retry ausgelöst. In diesem Fall muss ein manuelles Fehler-Handling implementiert werden.

m

(optional) Bei true wird ein URL-Encoding der Query der URL a durchgeführt. Default: false. Beispiel: Aus https://example.com?select id from mytable where num > 500 wird dann https://example.com?select%20id%20from%20mytable%20where%20num%20%3E%20500

n

(optional) Liefert die JSONPath-Abfrage ein Array in welchem Sonderzeichen enthalten sind, wie z. B. das /-Zeichen, dann werden diese per Default escaped mit dem \-Zeichen. Mit true können Sie dieses Verhalten unterbinden. Default: false.

o

(optional) Redirection strategy. Erlaubte Werte: "DEFAULT", "DISABLE", "LAX". Default: "DEFAULT".

DEFAULT: Bei HEAD wird zu HEAD redirected. Bei POST zu POST. Bei GET zu GET. Mit einer Ausnahme: Kommt in der Status-Code "303" zurück, wird immer auf GET redirected.

DISABLE: Es wir gar kein Redirect gemacht.

LAX: This strategy honors the restrictions on automatic redirection of entity enclosing methods such as POST and PUT imposed by the HTTP specification. 302 Moved Temporarily, 301 Moved Permanently and 307 Temporary Redirect status codes will result in an automatic redirect of HEAD and GET methods only. POST and PUT methods will not be automatically redirected as requiring user confirmation.

Datei zum Request-Body hinzufügen

Sie können die Map in Parameter g verwenden, um eine Datei zum Request-Body hinzuzufügen. Fügen Sie der Zuordnung einen Schlüssel REQUEST_HTTP_CONTENT_PATH hinzu und geben Sie den absoluten Pfad zur Datei als Wert für diesen Schlüssel an. Parameter h wird dann ignoriert.