http(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q)


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.

q

(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.

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
Content-Transfer-Encoding: 7bit


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




Parameter q




Ergebnis

200

200

200

map_Result_1
'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'

map_Result_2
'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'

map_Result_3
'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'