Php/docs/soapclient.soapclient
SoapClient::SoapClient
(PHP 5, PHP 7)
SoapClient::SoapClient — SoapClient constructor
说明
public SoapClient::SoapClient
( mixed $wsdl
[, array $options
] )
This constructor creates SoapClient objects
in WSDL
or non-WSDL
mode.
参数
wsdl
URI of the
WSDL
file ornull
if working innon-WSDL
mode.Note:
During development, WSDL caching may be disabled by the use of the
soap.wsdl_cache_ttl
php.ini
setting otherwise changes made to the WSDL file will have no effect untilsoap.wsdl_cache_ttl
is expired.options
An array of options. If working in WSDL mode, this parameter is optional. If working in non-WSDL mode, the
location
anduri
options must be set, wherelocation
is the URL of the SOAP server to send the request to, anduri
is the target namespace of the SOAP service.The
style
anduse
options only work in non-WSDL mode. In WSDL mode, they come from the WSDL file.The
soap_version
option should be one of eitherSOAP_1_1
orSOAP_1_2
to select SOAP 1.1 or 1.2, respectively. If omitted, 1.1 is used.For HTTP authentication, the
login
andpassword
options can be used to supply credentials. For making an HTTP connection through a proxy server, the optionsproxy_host
,proxy_port
,proxy_login
andproxy_password
are also available. For HTTPS client certificate authentication uselocal_cert
andpassphrase
options. An authentication may be supplied in theauthentication
option. The authentication method may be eitherSOAP_AUTHENTICATION_BASIC
(default) orSOAP_AUTHENTICATION_DIGEST
.The
compression
option allows to use compression of HTTP SOAP requests and responses.The
encoding
option defines internal character encoding. This option does not change the encoding of SOAP requests (it is always utf-8), but converts strings into it.The
trace
option enables tracing of request so faults can be backtraced. This defaults tofalse
The
classmap
option can be used to map some WSDL types to PHP classes. This option must be an array with WSDL types as keys and names of PHP classes as values.Setting the boolean
trace
option enables use of the methods SoapClient->__getLastRequest, SoapClient->__getLastRequestHeaders, SoapClient->__getLastResponse and SoapClient->__getLastResponseHeaders.The
exceptions
option is a boolean value defining whether soap errors throw exceptions of type SoapFault.The
connection_timeout
option defines a timeout in seconds for the connection to the SOAP service. This option does not define a timeout for services with slow responses. To limit the time to wait for calls to finish the default_socket_timeout setting is available.The
typemap
option is an array of type mappings. Type mapping is an array with keystype_name
,type_ns
(namespace URI),from_xml
(callback accepting one string parameter) andto_xml
(callback accepting one object parameter).The
cache_wsdl
option is one ofWSDL_CACHE_NONE
,WSDL_CACHE_DISK
,WSDL_CACHE_MEMORY
orWSDL_CACHE_BOTH
.The
user_agent
option specifies string to use inUser-Agent
header.The
stream_context
option is a resource for context.The
features
option is a bitmask ofSOAP_SINGLE_ELEMENT_ARRAYS
,SOAP_USE_XSI_ARRAY_TYPE
,SOAP_WAIT_ONE_WAY_CALLS
.The
keep_alive
option is a boolean value defining whether to send theConnection: Keep-Alive
header orConnection: close
.The
ssl_method
option is one ofSOAP_SSL_METHOD_TLS
,SOAP_SSL_METHOD_SSLv2
,SOAP_SSL_METHOD_SSLv3
orSOAP_SSL_METHOD_SSLv23
.
错误/异常
SoapClient::SoapClient() will generate an
E_ERROR
error if the location
and
uri
options aren't provided in non-WSDL mode.
A SoapFault exception will be thrown if the
wsdl
URI cannot be loaded.
范例
Example #1 SoapClient::SoapClient() example
<?php$client = new SoapClient("some.wsdl");$client = new SoapClient("some.wsdl", array('soap_version' => SOAP_1_2));$client = new SoapClient("some.wsdl", array('login' => "some_name", 'password' => "some_password"));$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost", 'proxy_port' => 8080));$client = new SoapClient("some.wsdl", array('proxy_host' => "localhost", 'proxy_port' => 8080, 'proxy_login' => "some_name", 'proxy_password' => "some_password"));$client = new SoapClient("some.wsdl", array('local_cert' => "cert_key.pem"));$client = new SoapClient(null, array('location' => "http://localhost/soap.php%22, 'uri' => "http://test-uri/%22));$client = new SoapClient(null, array('location' => "http://localhost/soap.php%22, 'uri' => "http://test-uri/%22, 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL));$client = new SoapClient("some.wsdl", array('compression' => SOAP_COMPRESSION_ACCEPT | SOAP_COMPRESSION_GZIP));$client = new SoapClient("some.wsdl", array('encoding'=>'ISO-8859-1'));class MyBook { public $title; public $author;}$client = new SoapClient("books.wsdl", array('classmap' => array('book' => "MyBook")));?>