HTTP(S) Connector
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
fromXML
deaktiviert) verarbeitet der Adapter je nach Operation ggf. ein beliebiges Input-Dokument mit unverändertem Content Type und Zeichenkodierung.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, siehe ParameterfromXML
und 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 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 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>