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.
-
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, siehe (7.4.0-de) HTTP(S) Communication (veraltet).
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 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 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. (information) Mithilfe dieses Parameters können auch Umlaute in den Anmeldedaten verwendet werden. |
|
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 (information) Es ist auch möglich, den Token in die Input-XML-Datei einzutragen. |
|
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. 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 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>