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>