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-Forwards
b Wert: 10
c Wert: map_Result
d Wert:
http(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o)
a Wert: http://example.com
b Wert:
c Wert:
d Wert:
e Wert:
f Wert:
g Wert: GET
h Wert:
i Wert:
j Wert:
k Wert:
l Wert: map_Result
m Wert: true
n 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'