HTTP-Header-Variable setzen und auslesen
Verwendung
Einem aufrufenden Web-Service können Sie über eine Variable zusätzliche Header-Informationen übergeben, z.B. eine Session-ID. Diese zusätzlichen Header-Informationen werden in den HTTP-Request-Header eingefügt und an den aufgerufenen Web-Service gesendet.
Die in der Antwort-Nachricht gesetzten HTTP-Response-Header werden in eine Variable geschrieben.
Bei einem Listener Web-Service-Connector werden die eingehenden HTTP-Header-Informationen in eine Variable geschrieben.
Um in der vom Listener-Connector erzeugten Antwort-Nachricht eigene HTTP-Header zu setzen, kann eine dafür vorgesehene Variable im Workflow gesetzt werden.
HTTP-Header-Variable für einen Web-Service-Aufruf setzen
Über folgende XML-Variablen vom Typ is:anyElement
können Sie HTTP-Header-Informationen setzen.
Für den ausgehenden Request definieren Sie die Variable WSCaller.requestHeaders
, deren Inhalt in den HTTP-Header des Requests eingefügt wird.
Die Struktur der Variablen muss wie folgt aufgebaut sein:
Variante 1:
<RequestHeaders>
<x-test>Request-Header an Web Service Connector gesetzt</x-test>
</RequestHeaders>
Variante 2:
<RequestHeaders>
<Header name="x-test">
Request-Header an Web Service Connector gesetzt
</Header>
</RequestHeaders>
Die Header-Informationen werden aus den Kind-Elementen des Wurzelelements RequestHeaders
übernommen:
Der Header-Name wird aus dem name
-Attribut (falls vorhanden) oder dem Elementnamen übernommen, der Header-Wert ergibt sich aus dem Element-Inhalt.
HTTP-Header nach einem Web-Service-Aufruf auslesen
Der HTTP-Header wird bei einem aufrufenden Web-Service Medium/Output Connector als XML-Struktur wie folgt in die Variable WSCaller.responseHeaders
geschrieben:
<ResponseHeaders>
<Transfer-encoding>chunked</Transfer-encoding>
<Content-type>text/xml;charset=utf-8</Content-type>
<Server>Apache</Server>
<Date>Mon, 16 Apr 2012 06:07:11 GMT</Date>
<Vary>Accept-Encoding</Vary>
<X-test>Test</X-test>
</ResponseHeaders>
Variable für HTTP-Header der Eingangsnachricht eines Listeners
Die HTTP-Header eines eingehenden Web-Service-Aufrufs an einem Web-Service Listener werden als XML-Struktur wie folgt in die Variable WSListener.requestHeaders
geschrieben:
<RequestHeaders>
<Cache-control>no-cache</Cache-control>
<Host>localhost:8000</Host>
<Content-type>text/xml;charset=utf-8</Content-type>
<Content-length>324</Content-length>
<Connection>keep-alive</Connection>
<Pragma>no-cache</Pragma>
<Authorization>(removed)</Authorization>
<X-test>Test</X-test>
<User-agent>JAX-WS RI 2.2-hudson-752-</User-agent>
<Accept>text/xml, multipart/related</Accept>
<Soapaction>"testOperation"</Soapaction>
</RequestHeaders>
HTTP-Header für eine ausgehende Response-Nachricht setzen
Um eigene HTTP-Header der Antwort des Web-Services (Listeners) zu setzen, verwenden Sie die Variable WSListener.responseHeaders
.
Die Struktur entspricht der für die Variable WSCaller.requestHeaders
(Wurzelelement ResponseHeaders
).
Beispiel
<ResponseHeaders>
<Transfer-encoding>chunked</Transfer-encoding>
<Content-type>text/xml;charset=utf-8</Content-type>
<Server>Apache</Server>
<Date>Mon, 18 Jan 2016 06:07:11 GMT</Date>
<Vary>Accept-Encoding</Vary>
<X-test>Test</X-test>
</ResponseHeaders>