(PHP 5 >= 5.0.1, PHP 7)
SoapClient::SoapClient — SoapClient-Konstruktor
Der Konstruktor erstellt SoapClient-Objekte im WSDL- oder non-WSDL-Modus.
wsdl
URI der WSDL-Datei oder NULL
, wenn der
non-WSDL-Modus verwendet werden soll.
Hinweis:
Während der Entwicklung sollte das WSDL-Caching durch die Verwendung der soap.wsdl_cache_ttl-Option in der php.ini ausgeschaltet werden. Andernfalls wirken sich Änderungen an der WSDL-Datei erst aus, wenn soap.wsdl_cache_ttl abgelaufen ist.
options
Ein Array aus Optionen. Wenn im WSDL-Modus gearbeitet wird, ist dieser Parameter optional. Im non-WSDL-Modus müssen die Optionen location und uri gesetzt sein. Dabei enthält location den URL des SOAP-Servers, an den die Anfrage gesendet werden soll, und uri den Zielnamensraum des SOAP-Dienstes.
Die Optionen style und use funktionieren nur im non-WSDL-Modus. Im WSDL-Modus werden sie durch das WSDL-File bestimmt.
Die Option soap_version sollte entweder
SOAP_1_1
oder SOAP_1_2
sein, um
SOAP 1.1 bzw. 1.2 zu wählen. Wird sie ausgelassen, wird 1.1 verwendet.
Die Optionen login und password
können verwendet werden, um Daten für die HTTP-Authentifizierung zu
übergeben. Um eine Verbindung über einen Proxy-Server
herzustellen, stehen die Optionen proxy_host,
proxy_port, proxy_login
und proxy_password zur Verfügung.
Für Authentifizierung über HTTPS-Client-Zertifikate nutzen Sie die
Optionen local_cert und passphrase.
Eine Authentifizierung kann in der
authentication-Option mit Werten befüllt werden. Die
Authentifizierungsmethode kann dabei entweder
SOAP_AUTHENTICATION_BASIC
(Standardvorgabe) oder
SOAP_AUTHENTICATION_DIGEST
sein.
HTTP-SOAP-Anfragen und -Antworten können mit Hilfe von compression komprimiert werden.
Die Option encoding definiert die intern verwendete Zeichenkodierung. Sie ändert nicht die Kodierung der SOAP-Anfrage selbst (die bleibt immer utf-8), es werden lediglich die Zeichenketten konvertiert.
Die trace-Option schaltet das Tracing von Anfragen
ein. Damit können Fehler zurückverfolgt werden. Der Standardwert ist
FALSE
.
Die classmap-Option kann verwendet werden, um WSDL-Typen auf PHP-Klassen abzubilden. Die Option muss ein Array mit den WSDL-Typen als Schlüssel und den PHP-Klassennamen als Wert sein.
Das Setzen der trace-Option aktiviert den Gebrauch der Methoden SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse und SoapClient->__getLastResponseHeaders.
Die Option exceptions ist ein boolscher Wert. Sie definiert, ob bei SOAP-Fehlern Exceptions vom Typ SoapFault geworfen werden sollen.
Zeitüberschreitung in Sekunden für Verbindungen zu einem SOAP-Service können mit der Option connection_timeout angegeben werden. Diese Option definiert keine Zeitüberschreitung für Dienste mit langsamen Antwortzeiten. Um zu definieren, wie lange auf die Beendung einer Anfrage gewartet werden soll, steht die Einstellung default_socket_timeout zur Verfügung.
Die Option typemap ist ein Array mit Typabbildungen. Jede Abbildung ist ein Array mit den Schlüsseln type_name, type_ns (Namespace-URI), from_xml (Callback akzeptiert einen String-Parameter) und to_xml (callback akzeptiert einen Objekt-Parameter).
Die Option cache_wsdl ist eine der folgenden Konstanten:
WSDL_CACHE_NONE
,
WSDL_CACHE_DISK
,
WSDL_CACHE_MEMORY
oder
WSDL_CACHE_BOTH
.
Die Option user_agent gibt die Zeichenkette an, die im User-Agent-Header verwendet werden soll.
Die Option stream_context ist eine Ressource auf context.
The features option is a bitmask of
SOAP_SINGLE_ELEMENT_ARRAYS
,
SOAP_USE_XSI_ARRAY_TYPE
,
SOAP_WAIT_ONE_WAY_CALLS
.
Die keep_alive Option ist ein boolescher Wert, der definiert, ob der Connection: Keep-Alive oder Connection: close Header gesendet werden soll.
Die ssl_method Option ist entweder
SOAP_SSL_METHOD_TLS
,
SOAP_SSL_METHOD_SSLv2
,
SOAP_SSL_METHOD_SSLv3
oder
SOAP_SSL_METHOD_SSLv23
.
SoapClient::SoapClient() erzeugt einen
E_ERROR
Fehler, wenn die location und
uri Optionen im non-WSDL Modus nicht angegeben wurden.
Eine SoapFault Exception wird ausgelöst, wenn der
wsdl
URI nicht geladen werden kann.
Version | Beschreibung |
---|---|
5.5.0 | Neue ssl_method Option. |
5.4.0 | Neue keep_alive Option. |
Beispiel #1 SoapClient::SoapClient()-Beispiel
<?php
$client = new SoapClient("ein.wsdl");
$client = new SoapClient("ein.wsdl", array('soap_version' => SOAP_1_2));
$client = new SoapClient("ein.wsdl", array('login' => "ein_name",
'password' => "ein_passwort"));
$client = new SoapClient("ein.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080));
$client = new SoapClient("ein.wsdl", array('proxy_host' => "localhost",
'proxy_port' => 8080,
'proxy_login' => "ein_name",
'proxy_password' => "ein_passwort"));
$client = new SoapClient("ein.wsdl", array('local_cert' => "cert_key.pem"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/"));
$client = new SoapClient(null, array('location' => "http://localhost/soap.php",
'uri' => "http://test-uri/",
'style' => SOAP_DOCUMENT,
'use' => SOAP_LITERAL));
$client = new SoapClient("ein.wsdl",
array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));
$server = new SoapClient("ein.wsdl", array('encoding'=>'ISO-8859-1'));
class MyBook {
public $title;
public $author;
}
$server = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));
?>