Dieser Adapter kommuniziert mit Servern über das HyperText Transfer Protocol (HTTP) oder HTTP Secure (HTTPS) auf Basis des Apache HttpClient in Version 4. Der Adapter bietet die Standard-HTTP-Methoden GET, POST, PUT, DELETE, HEAD, OPTIONS, TRACE und PATCH. Zusätzlich können benutzerdefinierte HTTP-Methoden verwendet werden. Dabei unterstützt der Adapter HTTP-Basic-, Digest- und NTLMv2-Authentifizierung sowie Proxy-Server und präemptive Authentifizierung. Zudem unterstützt der Adapter auch Server Name Indication für HTTPS-Verbindungen sowie Client-Zertifikate zur Validierung von Requests.
Hinweis:
-
Im Standardmodus (Parameter
fromXMLdeaktiviert) verarbeitet der Adapter je nach Operation ggf. ein beliebiges Input-Dokument mit unverändertem Content Type und Zeichenkodierung. -
Im Expertenmodus (Parameter
fromXMLaktiviert) verarbeitet der Adapter ein spezifisches XML-Dokument, das Header, Cookie-Informationen etc. enthalten kann und mit dem sich die HTTP(S)-Operation detailliert steuern lässt, siehe ParameterfromXMLund die Beschreibung der Input-Struktur. -
Dieser Adapter löst den bestehenden Adapter HTTP(S) Communication ab.
Eigenschaften (Properties)
|
Operation |
Bestimmt, welche Operation der Funktions-Adapter durchführt Mögliche Werte:
|
Parameter
|
Adapter |
Hauptklasse des Adapters (nicht verändern!) Mögliche Werte: de.softproject.integration.adapter.http4.HttpClient4Adapter: Hauptklasse (Standard) |
|
protocol |
Verwendetes Protokoll (HTTP oder HTTPS) Mögliche Werte:
|
|
host |
IP-Adresse oder Host-Name des physikalischen Servers Hinweis: Der Parameter Mögliche Werte: Beliebige gültige Zeichenkette ohne Protokollangabe (z. B. |
|
vHost |
Host-Name eines logischen Servers (virtual host), falls dieser durch die physikalische Angabe in Parameter host nicht eindeutig identifiziert werden kann Hinweis: Der Parameter Hier können die Ports angegeben werden, ausgenommen der Ports 80 (Standard für HTTP-Verbindungen) und 443 (Standard für HTTPS-Verbindungen). Mögliche Werte: Beliebige gültige Zeichenkette ohne Protokollangabe (z. B. |
|
port |
Portnummer des HTTP(S)-Dienstes Mögliche Werte:
|
|
path |
Ordnerpfad auf dem Server, beginnend mit einem Schrägstrich Mögliche Werte: Beliebige Pfadangabe (z. B. |
|
method |
Name der HTTP-Methode, die bei der Operation Mögliche Werte: beliebige Zeichenkette |
|
authenticationEncoding |
Zeichenkodierung für die Anmeldedaten Mögliche Werte: Angabe einer Zeichenkodierung, z. B. |
|
query |
Argument(e) für die HTTP(S)-Anfrage Mögliche Werte: Beliebige URL-kodierte Argumente ohne führendes Fragezeichen (z. B. |
|
username |
Benutzername für eine Basic-, Digest- oder NTLM-Authentifizierung Mögliche Werte:
|
|
password |
Passwort für eine Basic-, Digest- oder NTLM-Authentifizierung Mögliche Werte: Beliebige Zeichenkette |
|
token |
Token für Bearer-Authentifizierung |
|
ntlmWorkstation |
Workstation (Computer-Name) des Clients (nur für NTLM-Authentifizierung, siehe Parameter Mögliche Werte: Beliebiger gültiger Workstation-Name |
|
ntlmDomain |
Name der Domäne (nur für NTLM-Authentifizierung, siehe Parameter Mögliche Werte: Beliebiger gültiger Domäne-Name (NetBIOS Name) |
|
usePreemptiveBasicAuth |
Präemptive Authentifizierung (mit den Zugangsdaten aus Parameter username und password) für HTTP(S)-Aufrufe aktivieren (nur für Basic-Authentifizierung, siehe Parameter allowBasic) Mögliche Werte:
|
|
allowBasic |
HTTP(S)-Basic-Authentifizierung verwenden Mögliche Werte:
|
|
allowDigest |
Digest-Authentifizierung verwenden Mögliche Werte:
|
|
allowNtlm |
Proprietäre NTLM-Server-Authentifizierung von Microsoft verwenden Mögliche Werte:
|
|
fromXml |
Expertenmodus aktivieren. Der Adapter erwartet ein spezifisches XML-Dokument inklusive Headern, Cookie-Informationen etc., mit dem sich die HTTP(S)-Operation detailliert steuern lässt. Hinweis: Im Expertenmodus kann der HTTP-Header Mögliche Werte:
|
|
toXml |
Alle Header als Elemente und den Inhalt des Bodys als Base64-kodierten Text in einem XML-Dokument ausgeben Mögliche Werte:
|
|
hideCookieHeader |
Im Ergebnis-XML-Dokument auch die Header-Elemente mit Cookie-Informationen ausgeben (wenn Parameter Mögliche Werte:
|
|
useProxy |
Proxy-Server für den Verbindungsaufbau verwenden Mögliche Werte:
|
|
proxyHost |
IP-Adresse oder Host-Name eines Proxy-Servers Mögliche Werte: Beliebige gültige Zeichenkette (z. B. |
|
proxyPort |
Portnummer des Proxy-Servers Mögliche Werte:
|
|
proxyUsername |
Benutzername für eine Basic-, Digest- oder NTLM-Authentifizierung am Proxy-Server Mögliche Werte:
|
|
proxyPassword |
Passwort für den Proxy-Server Mögliche Werte: Beliebige Zeichenkette |
|
proxyNtlmWorkstation |
Workstation (Computer-Name), von der die Authentifizierungsanfrage ausgeht (für eine NTLM-Authentifizierung via NTLM-Proxy) Mögliche Werte: Beliebiger Workstation-Name |
|
proxyNtlmDomain |
Windows-Domäne für eine NTLM-Authentifizierung via NTLM-Proxy Mögliche Werte: Beliebiger Domänenname |
|
proxyUsePreemptiveBasicAuth |
Präemptive Authentifizierung (mit den Zugangsdaten aus Parameter Mögliche Werte:
|
|
proxyAllowBasic |
Basic-Authentifizierung für den Proxy verwenden Mögliche Werte:
|
|
proxyAllowDigest |
Digest-Authentifizierung für den Proxy verwenden Mögliche Werte:
|
|
proxyAllowNtlm |
Proprietäre NTLM-Server-Authentifizierung von Microsoft für den Proxy verwenden Mögliche Werte:
|
|
connectTimeout |
Timeout-Wert für den Verbindungsaufbau in Millisekunden Mögliche Werte:
|
|
socketTimeout |
Timeout-Wert zwischen zwei eingehenden Datenpaketen in Millisekunden; Dieser sagt nichts über die Gesamt-Anfragezeit aus. Mögliche Werte:
|
|
redirectsEnabled |
URL-Weiterleitungen bei einer Server-Antwort mit HTTP-Status Mögliche Werte:
|
|
circularRedirectsEnabled |
Zirkuläre Weiterleitungen bei einer Server-Antwort mit HTTP-Status Mögliche Werte:
|
|
maxRedirects |
Maximale Anzahl der möglichen URL-Weiterleitungen bei einer Server-Antwort mit HTTP-Status Mögliche Werte:
|
|
acceptAllCertificates |
Zertifikatsprüfung abschalten Mögliche Werte:
|
|
acceptAllSslHostnames |
Hostname-Überprüfung für Zertifikate abschalten Mögliche Werte:
|
|
useClientCertificate |
Client-Zertifikate zur Validierung des Requests verwenden Mögliche Werte:
|
|
keystoreType |
Keystore-Typ für die Speicherung von Client-Zertifikaten (gemäß http://docs.oracle.com/javase/6/docs/technotes/guides/security/StandardNames.html#KeyStore) Mögliche Werte:
|
|
keystoreURL |
URL zum Keystore für die Validierung des Requests über Client-Zertifikate Mögliche Werte: Beliebige gültige URL, z.B. |
|
keystorePassword |
Passwort für den Keystore zur Validierung des Requests über Client-Zertifikate Mögliche Werte: Beliebige gültige Zeichenkette |
|
keyAlias |
Schlüssel-Alias zur Zugriff auf einen bestimmten Schlüssel innerhalb des Keystores Mögliche Werte: Beliebige gültige Zeichenkette |
|
aliasPassword |
Zugehöriges Passwort für einen bestimmten Schlüssel innerhalb des Keystores Mögliche Werte: Beliebige gültige Zeichenkette |
Statuswerte
|
-1 |
Technischer Fehler: Server antwortet nicht, oder das Adapter-Input-XML kann nicht verarbeitet werden (nur wenn der Expertenmodus über Parameter fromXml aktiviert ist) |
|
>=100 |
Dreistelliger HTTP-Statuscode je nach Ergebnis des Aufrufs, siehe http://tools.ietf.org/html/rfc2616#section-6.1.1 |
Input (Standardmodus)
Im Standardmodus (Parameter fromXML deaktiviert) verarbeitet der Adapter je nach Operation ggf. ein beliebiges Input-Dokument mit unverändertem Content Type und Zeichenkodierung; siehe (7.4.3-de) Document Properties Changer.
Input (Expertenmodus)
Im Expertenmodus (Parameter fromXML aktiviert) verarbeitet der Adapter ein spezifisches XML-Dokument, das Header, Cookie-Informationen etc. enthalten kann und mit dem sich die HTTP(S)-Operation detailliert steuern lässt.
Diese XML-Struktur entspricht im Wesentlichen sowohl der XML-Struktur, die der Adapter ausgibt, wenn Parameter toXml aktiviert ist, als auch der X4 ReST-Schnittstelle (wenn für die jeweilige URI-Operation in der Konfigurationsdatei <X4>/X4DB/0/restconfig.xml in Attribut isDirect="false" definiert wurde). Einziger Unterschied zum Ergebnis-XML-Dokument von X4 ReST ist, dass dieses den Base64-kodierten Body in einem Element <Content> (statt <Body> beim Adapter) bereitstellt.
In Element <Cookies> sind ggf. zudem Cookie-Informationen in jeweils einem Element <Cookie> enthalten:
<Request>
<Headers>
<Header>
<Name><!--HTTP-Header-Name--></Name>
<Value><!--Header-Wert--></Value>
</Header>
<!-- Oder bei Datumswerten: -->
<Header>
<Name><!--HTTP-Header-Name--></Name>
<Date timezone="Zeitzone"><!--Header-Datumswert--></Date>
</Header>
</Headers>
<Cookies>
<Cookie expires="Verfallsdatum" path="Pfad" domain="Domäne">
<Version><!--Versionsnummer--></Version>
<Secure/> <!-- Wenn Secure-Attribut gesetzt -->
<Persistent /> <!-- Bei einem persistenten Cookie -->
<Domain><!--Domäne--></Domain>
<Path><!--Pfad--></Path>
<Name><!--Cookie-Name--></Name>
<Value><!--Cookie-Wert--></Value>
<ExpiryDate><!--Verfallsdatum im Format YYYY-MM-DD hh:mm:ss--></ExpiryDate>
</Cookie>
</Cookies>
<Body><!--Base64-kodierte Daten der HTTP-Anfrage--></Body>
</Request>
Operation Execute
Bei der Operation Execute in Verbindung mit dem aktiviertem Parameter fromXML kann die HTTP-Methode auch im Input-XML wie folgt gesetzt werden:
<Request method="CUSTOM_METHOD">
<Headers>
<!-- ... -->
</Headers>
<Cookies>
<!-- ... -->
</Cookies>
<Body><!--Base64-kodierte Daten der HTTP-Anfrage--></Body>
</Request>
Output
Standardmäßig (wenn Parameter toXml deaktiviert ist) wird das Ergebnisdokument des HTTP(S)-Aufrufs ausgegeben.
Wenn Parameter toXml aktiviert ist, wird ein XML-Dokument ausgegeben, das alle HTTP-Header der Antwort jeweils in einem Element <Header> enthält. Falls ein Header-Wert mehrere Werte enthält, die durch Kommas getrennt sind, so werden diese Teilwerte zusätzlich in jeweils einem Element <Element> in den Kindelementen <Name> und <Value> angegeben.
Der Inhalt des Bodys ist als Base64-kodierte Zeichenkette in Element <Body> enthalten. Wenn Parameter hideCookieHeader deaktiviert wurde, wird zusätzlich jeder Header ausgegeben, der zum Cookie geführt hat.
<Response>
<Request line="HTTP-Anfragezeile">
<Method><!--HTTP-Methode--></Method>
<URI><!--Pfad auf dem Server--></URI>
<Protocol>HTTP/1.1</Protocol>
</Request>
<Status line="HTTP-Statuszeile">
<Code><!--Dreistelliger Statuscode--></Code>
<Reason><!--Statusname--></Reason>
<Protocol><!--HTTP/1.1</Protocol>
</Status>
<Headers>
<Header>
<Name><!--HTTP-Header-Name--></Name>
<Value><!--Header-Wert--></Value>
</Header>
<!-- Oder bei Datumswerten: -->
<Header>
<Name><!--HTTP-Header-Name--></Name>
<Date timezone="Zeitzone"><!--Header-Datumswert--></Date>
</Header>
</Headers>
<Cookies>
<Cookie expires="Verfallsdatum" path="Pfad" domain="Domäne">
<Version><!--Versionsnummer--></Version>
<Secure/> <!-- Wenn Secure-Attribut gesetzt -->
<Persistent /> <!-- Bei einem persistenten Cookie -->
<Domain><!--Domäne--></Domain>
<Path><!--Pfad</Path>
<Name><!--Cookie-Name--></Name>
<Value><!--Cookie-Wert--></Value>
<ExpiryDate><!--Verfallsdatum im Format YYYY-MM-DD hh:mm:ss--></ExpiryDate>
</Cookie>
</Cookies>
<Body><!--Base64-kodierte Daten im Body der Antwort--></Body>
</Response>