http(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p)
|
Gruppe |
Führt HTTP-Requests mit den HTTP-Methoden GET, POST, DELETE oder PUT aus und gibt als Rückgabewert den HTTP-Status zurück. Request-Header können gesetzt werden.
Die Response-Daten und -Header können in einer Map und einer Datei gespeichert werden.
Parameterbeschreibung
|
Parameter |
Beschreibung |
|
a |
URL ohne Query. |
|
b |
(optional) true für Ausführung via DMZ. Default: false |
|
c |
Query. |
|
d |
Body-Daten (nicht für GET, HEAD, DELETE). Hinweis: Siehe auch Abschnitt Multipart-Requests. |
|
e |
(optional) Zeichensatz. Default: Der System-Zeichensatz. |
|
f |
MIME-Type (für PUT/POST/PATCH). Hinweis: Siehe auch Abschnitt Multipart-Requests. Hinweis: Wenn Sie POST verwenden, dann wird im Header Content Type per Default der MIME-Type und das Charset (siehe Parameter e) angegeben. Wollen Sie nur den MIME-Type haben, können Sie den Suffix ;raw verwenden, also z. B. text/plain;raw Hinweis: Funktioniert nicht bei multipart/form-data. Siehe auch Abschnitt Multipart-Requests. |
|
g |
Die zu verwendende HTTP-Methode. Verwenden Sie zur Auswahl eines Wertes die drei Punkte. |
|
h |
(optional) HTTP-Kanal-ID (nur bei Authentifizierung) oder leer. Als Benutzer wird der Wert des Feldes "Eigene Kennung" verwendet und als Passwort der Wert des Feldes "Eigenes Kennwort". |
|
i |
(optional) Zertifikats-ID (falls benötigt) oder leer. |
|
j |
(optional) Timeout in Sekunden. Default: 90 |
|
k |
(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. |
|
l |
(optional) Name einer Map, in die die Response-Header und Response-Daten gespeichert werden sollen → Siehe Abschnitt HTTP-Response-Header und Daten für Details. Es ist auch möglich Request-Header zu einem Aufruf hinzuzufügen → Siehe Abschnitt HTTP-Request-Header für Details. |
|
m |
(optional) true leert die Map l vor dem Befüllen. Default: false |
|
n |
(optional) Pfad und Name einer Datei, in die die Response-Daten gespeichert werden sollen → Siehe Abschnitt HTTP-Response-Header und Daten für Details. |
|
o |
(optional) Falls true, dann werden die Werte Base64-kodiert in die Map geschrieben. Falls false, dann wird das Encoding aus Parameter e verwendet. Default: false |
|
p |
(optional, nur relevant für Multipart) Der Multipart Mode, siehe Abschnitt Multipart-Requests. Erlaubte Werte: STRICT, RFC6532, COMPATIBLE, SYSTEM. Default: SYSTEM Header: STRICT ( Content-Disposition , Content-Type , Content-Transfer-Encoding ), RFC6532 ( Content-Disposition , Content-Type , Content-Transfer-Encoding ), COMPATIBLE (nur Content-Disposition und zusätzlich Content-Type bei einem Datei-Part). Der Mode bei der Verwendung des Wertes SYSTEM wird bestimmt durch die System-Property -Dhub.datawizard.multipart.browserMode. Bei -Dhub.datawizard.multipart.browserMode=true gilt COMPATIBLE. Ist die Property nicht gesetzt oder auf false, dann gilt STRICT. |
Multipart-Requests
Geben Sie in Parameter f den Wert multipart/form-data an. Erlaubte Methoden in g sind POST, PUT und PATCH. Ist eine falsche Methode eingestellt, dann wird im Request automatisch auf POST umgestellt.
Parameter d wird dann als Map-Name ausgewertet. Die Map muss dann die einzelnen Part/Datei-Parts enthalten. Parameter p erlaubt das Setzen des Multipart Modes.
Normaler Part
Einen normalen Part erzeugen Sie, indem Sie als Schlüssel des Map-Eintrags den Namen des Parts angeben und als Wert des Map-Eintrags den Inhalt des Parts.
|
Header bei STRICT und RFC6532 (siehe Parameter p): Content-Type: text/plain; charset=<Parameter e> Content-Transfer-Encoding: 8bit Hinweis: Die Header-Werte sind hier, bis auf Parameter e, fest vorgegeben. |
Datei-Part
Verwenden Sie für einen Datei-Part für den Schlüssel die folgende Syntax.
|
file:<Schlüssel-Name des Datei-Parts>:<Dateiname>[:<Content-Type und optionales Content-Transfer-Encoding mit Suffix #, siehe Beispiel>] |
Der Wert zu solch einem Schlüssel ist entweder
|
file:<Pfad zur Datei> |
oder der tatsächliche Inhalt der Datei.
|
Header bei STRICT und RFC6532 (siehe Parameter p): Content-Type: application/octet-stream oder optionaler Content-Type, wenn ein Datei-Pfad angegeben wurde und application/octet-stream; charset=<Parameter e>, wenn der tatsächliche Inhalt der Datei angegeben wurde, siehe oben und Beispiel. Content-Transfer-Encoding: binary oder optionales Content-Transfer-Encoding, siehe oben und Beispiel. |
Beispiel:
Schlüssel: file:testfile:phone.pdf:text/plain#7bit
Wert: file:./webapps/root/upload/test.txt
Das erzeugt (bei STRICT und RFC6532) folgende Header:
|
Content-Type: text/plain |
HTTP-Request-Header
Es ist auch möglich Request-Headerwerte zu einem Aufruf hinzuzufügen, indem die unter l angegebene Map vor dem Funktionsaufruf mit Wertepaaren belegt wird. Die Syntax ist hier folgende.
|
REQUEST_HTTP_HEADER_<Value> |
Hinweis: Bitte beachten Sie, dass Großschreibung und Kleinschreibung in <Value> für den Wert übernommen werden. Und das nicht nur in der Map, sondern auch im tatsächlichen HTTP-Request-Header.
Hinweis: Damit sich die Werte der Map aus Aufruf (Request-Header) und Ergebnis (Response-Header) nicht vermischen, kann der Parameter m auf true gestellt werden. Dadurch wird die Map l vor dem Hinzufügen der HTTP Response-Header gelöscht.
Beispiel:
Der HTTP-Request-Header Max-Forwards (begrenzt die Anzahl der möglichen Weiterleitungen durch Proxys oder Gateways) soll auf 10 gesetzt werden.
add to map(key a, value b, name of map c, [skip empty d])a Wert: REQUEST_HTTP_HEADER_Max-Forwardsb Wert: 10c Wert: map_Resultd Wert: http(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)a Wert: http://example.comb Wert: c Wert: d Wert: e Wert: f Wert: g Wert: GETh Wert: i Wert: j Wert: k Wert: l Wert: map_Resultm Wert: truen Wert: o Wert: HTTP-Response-Header und Daten
Die Response des HTTP-Requests kann in eine Map l gespeichert werden. Die Map enthält dann die folgenden Schlüssel mit dazugehörigem Wert.
|
Schlüssel |
Wert |
|
RESPONSE_HTTP_STATUS |
Zurückgelieferter HTTP-Status. |
|
RESPONSE_HTTP_STATUSLINE |
Zurückgelieferte Statusnachricht. |
|
RESPONSE_HTTP_DATA |
Zurückgelieferte Daten. Wichtiger Hinweis: Soll der Wert für RESPONSE_HTTP_DATA nicht in eine Map, sondern in eine Datei gespeichert werden, da es sich evtl. um ein PDF-Dokument o. ä. handelt (binär), muss die Datei in Parameter n angegeben werden. |
|
RESPONSE_HTTP_HEADER_<...> |
Zurückgelieferte Headerfelder der HTTP-Antwort. Zum Beispiel RESPONSE_HTTP_HEADER_CONTENT-TYPE für HTTP-Response-Header Content-Type. |
Zudem können die zurück gelieferten Daten (nicht die Response-Header) in eine Datei n gespeichert werden. Folgend eine Übersicht aller Kombinationsmöglichkeiten.
|
Benutzte Parameter |
Gespeicherte Daten |
|
Nur Map l |
Die Map enthält die Response-Header und die zurück gelieferten Daten (als Wert des Schlüssels RESPONSE_HTTP_DATA). |
|
Nur Datei n |
Die Datei enthält nur die zurück gelieferten Daten (aber keine Response-Header). |
|
Map l und Datei n |
Die Map enthält nur die Response-Header (aber nicht den Schlüssel RESPONSE_HTTP_DATA). Die Datei enthält nur die zurück gelieferten Daten (aber keine Response-Header). |
Raw Request/Response
Wenn Sie bei Verwendung der HTTP-Methode POST (speziell bei Multipart) den Raw Request und die Raw Response (und die jeweiligen Header) zu Testzwecken sehen möchten, finden Sie diese in der Log-Übersicht als Base64-kodierten String, wenn Sie die Trace-Meldungen für Phase 3 in der Logging-Konfiguration aktivieren. Dekodieren können Sie diesen mit dem Plugin Enkodierer/Dekodierer. Alternativ können Sie natürlich auch externe Tools wie z. B. https://requestcatcher.com/ verwenden.
Beispiele
Hinweis: Der komplette Request-String im ersten Beispiel ist http://maps.googleapis.com/maps/api/geocode/xml?address=82343+Hindenburgstra%C3%9Fe+15. Der Teil vor dem ? ist im Parameter a anzugeben. Der Teil hinter dem ? ist im Parameter c anzugeben.
|
Parameter a |
http://maps.googleapis.com/maps/api/geocode/xml |
http://www.lobster.de/img/150402_edm_data.jpg |
http://httpbin.org/post |
|
Parameter b |
|
|
|
|
Parameter c |
address=82343+Hindenburgstra%C3%9Fe+15 |
|
custname=Lobster&delivery=18:00 |
|
Parameter d |
|
|
|
|
Parameter e |
|
|
|
|
Parameter f |
|
|
application/x-www-form-urlencoded |
|
Parameter g |
GET |
GET |
POST |
|
Parameter h |
|
|
|
|
Parameter i |
|
|
|
|
Parameter j |
|
180 |
|
|
Parameter k |
|
|
2 |
|
Parameter l |
map_Result_1 |
map_Result_2 |
map_Result_3 |
|
Parameter m |
true |
true |
true |
|
Parameter n |
|
./temp/http/picture/logo.jpg |
|
|
Parameter o |
|
|
|
|
Ergebnis |
200 |
200 |
200 |
'RESPONSE_HTTP_HEADER_ACCEPT-RANGES'='none''RESPONSE_HTTP_HEADER_CONTENT-TYPE'='application/xml; charset=UTF-8''RESPONSE_HTTP_HEADER_TRANSFER-ENCODING'='chunked''RESPONSE_HTTP_HEADER_X-XSS-PROTECTION'='1; mode=block''RESPONSE_HTTP_HEADER_SERVER'='mafe''RESPONSE_HTTP_HEADER_ALTERNATE-PROTOCOL'='80:quic,p=0''RESPONSE_HTTP_HEADER_ACCESS-CONTROL-ALLOW-ORIGIN'='*''RESPONSE_HTTP_HEADER_VARY'='Accept-Language,Accept-Encoding''RESPONSE_HTTP_STATUS'='200''RESPONSE_HTTP_DATA'='<?xml version="1.0" encoding="UTF-8"?> <GeocodeResponse> <status>OK</status> <result> <type>street_address</type> <formatted_address>1600 Amphitheatre Parkway, Mountain View, CA 94043, USA</formatted_address> <address_component> <long_name>1600</long_name> <short_name>1600</short_name> <type>street_number</type> </address_component> . . . <geometry> <location> <lat>37.4224553</lat> <lng>-122.0843062</lng> </location> <location_type>ROOFTOP</location_type> <viewport> <southwest> <lat>37.4211063</lat> <lng>-122.0856552</lng> </southwest> <northeast> <lat>37.4238043</lat> <lng>-122.0829572</lng> </northeast> </viewport> </geometry> <place_id>ChIJ2eUgeAK6j4ARbn5u_wAGqWA</place_id> </result> </GeocodeResponse> ''RESPONSE_HTTP_HEADER_X-FRAME-OPTIONS'='SAMEORIGIN''RESPONSE_HTTP_STATUSLINE'='OK''RESPONSE_HTTP_HEADER_EXPIRES'='Thu, 28 May 2015 06:58:53 GMT''RESPONSE_HTTP_HEADER_DATE'='Wed, 27 May 2015 06:58:53 GMT''RESPONSE_HTTP_HEADER_CACHE-CONTROL'='public, max-age=86400''RESPONSE_HTTP_HEADER_CONTENT-TYPE'='image/jpeg''RESPONSE_HTTP_HEADER_ACCEPT-RANGES'='bytes''RESPONSE_HTTP_HEADER_VARY'='Accept-Encoding''RESPONSE_HTTP_HEADER_SERVER'='Apache''RESPONSE_HTTP_HEADER_LAST-MODIFIED'='Thu, 02 Apr 2015 08:04:18 GMT''RESPONSE_HTTP_STATUS'='200''RESPONSE_HTTP_HEADER_KEEP-ALIVE'='timeout=15, max=100''RESPONSE_HTTP_STATUSLINE'='OK''RESPONSE_HTTP_HEADER_ETAG'='"1b53-512b9474c8480"''RESPONSE_HTTP_HEADER_DATE'='Wed, 27 May 2015 07:38:18 GMT''RESPONSE_HTTP_HEADER_CONNECTION'='Keep-Alive''RESPONSE_HTTP_HEADER_CONTENT-LENGTH'='6995''RESPONSE_HTTP_HEADER_CONTENT-TYPE'='application/json''RESPONSE_HTTP_HEADER_ACCESS-CONTROL-ALLOW-CREDENTIALS'='true''RESPONSE_HTTP_HEADER_SERVER'='nginx''RESPONSE_HTTP_STATUS'='200''RESPONSE_HTTP_DATA'='{ "args": { "custname": "Lobster", "delivery": "18:00" }, "data": "", "files": {}, "form": {}, "headers": { "Accept-Encoding": "gzip,deflate", "Cache-Control": "no-cache", "Content-Length": "0", "Content-Type": "application/x-www-form-urlencoded; charset=ISO-8859-1", "Host": "httpbin.org", "User-Agent": "Lobster" }, "json": null, "url": "http://httpbin.org/post?custname=Losbter&delivery=18:00" } ''RESPONSE_HTTP_STATUSLINE'='OK''RESPONSE_HTTP_HEADER_ACCESS-CONTROL-ALLOW-ORIGIN'='*''RESPONSE_HTTP_HEADER_DATE'='Wed, 27 May 2015 07:50:30 GMT''RESPONSE_HTTP_HEADER_CONNECTION'='keep-alive''RESPONSE_HTTP_HEADER_CONTENT-LENGTH'='500'