Public Member Functions | Data Fields

soap_client Class Reference

soapclient higher level class for easy usage. More...

Inheritance diagram for soap_client:
Collaboration diagram for soap_client:

Public Member Functions

 soap_client ($endpoint, $wsdl=false, $proxyhost=false, $proxyport=false, $proxyusername=false, $proxypassword=false, $timeout=0, $response_timeout=30)
 constructor
 call ($operation, $params=array(), $namespace='', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded')
 calls method, returns PHP native type
 getOperationData ($operation)
 get available data pertaining to an operation
 send ($msg, $soapaction= '', $timeout=0, $response_timeout=30)
 send the SOAP message
 parseResponse ($headers, $data)
 processes SOAP message returned from server
 setHeaders ($headers)
 set the SOAP headers
 getHeaders ()
 get the response headers
 setHTTPProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '')
 set proxy info here
 setCredentials ($username, $password, $authtype= 'basic')
 if authenticating, set user credentials here
 setHTTPEncoding ($enc='gzip, deflate')
 use HTTP encoding
 useHTTPPersistentConnection ()
 use HTTP persistent connections if possible
 getDefaultRpcParams ()
 gets the default RPC parameter setting.
 setDefaultRpcParams ($rpcParams)
 sets the default RPC parameter setting.
 getProxy ()
 dynamically creates proxy class, allowing user to directly call methods from wsdl
 getHTTPBody ($soapmsg)
 gets the HTTP body for the current request.
 getHTTPContentType ()
 gets the HTTP content type for the current request.
 getHTTPContentTypeCharset ()
 gets the HTTP content type charset for the current request.
 decodeUTF8 ($bool)
 soap_client ($endpoint, $wsdl=false, $proxyhost=false, $proxyport=false, $proxyusername=false, $proxypassword=false, $timeout=0, $response_timeout=30)
 constructor
 call ($operation, $params=array(), $namespace='', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded')
 calls method, returns PHP native type
 getOperationData ($operation)
 get available data pertaining to an operation
 send ($msg, $soapaction= '', $timeout=0, $response_timeout=30)
 send the SOAP message
 parseResponse ($headers, $data)
 processes SOAP message returned from server
 setHeaders ($headers)
 set the SOAP headers
 getHeaders ()
 get the response headers
 setHTTPProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '')
 set proxy info here
 setCredentials ($username, $password, $authtype= 'basic')
 if authenticating, set user credentials here
 setHTTPEncoding ($enc='gzip, deflate')
 use HTTP encoding
 useHTTPPersistentConnection ()
 use HTTP persistent connections if possible
 getDefaultRpcParams ()
 gets the default RPC parameter setting.
 setDefaultRpcParams ($rpcParams)
 sets the default RPC parameter setting.
 getProxy ()
 dynamically creates proxy class, allowing user to directly call methods from wsdl
 getHTTPBody ($soapmsg)
 gets the HTTP body for the current request.
 getHTTPContentType ()
 gets the HTTP content type for the current request.
 getHTTPContentTypeCharset ()
 gets the HTTP content type charset for the current request.
 decodeUTF8 ($bool)
 soap_client ($endpoint, $wsdl=false, $proxyhost=false, $proxyport=false, $proxyusername=false, $proxypassword=false, $timeout=0, $response_timeout=30)
 constructor
 call ($operation, $params=array(), $namespace='', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded')
 calls method, returns PHP native type
 getOperationData ($operation)
 get available data pertaining to an operation
 send ($msg, $soapaction= '', $timeout=0, $response_timeout=30)
 send the SOAP message
 parseResponse ($headers, $data)
 processes SOAP message returned from server
 setHeaders ($headers)
 set the SOAP headers
 getHeaders ()
 get the response headers
 setHTTPProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '')
 set proxy info here
 setCredentials ($username, $password, $authtype= 'basic')
 if authenticating, set user credentials here
 setHTTPEncoding ($enc='gzip, deflate')
 use HTTP encoding
 useHTTPPersistentConnection ()
 use HTTP persistent connections if possible
 getDefaultRpcParams ()
 gets the default RPC parameter setting.
 setDefaultRpcParams ($rpcParams)
 sets the default RPC parameter setting.
 getProxy ()
 dynamically creates proxy class, allowing user to directly call methods from wsdl
 getHTTPBody ($soapmsg)
 gets the HTTP body for the current request.
 getHTTPContentType ()
 gets the HTTP content type for the current request.
 getHTTPContentTypeCharset ()
 gets the HTTP content type charset for the current request.
 decodeUTF8 ($bool)

Data Fields

 $username = ''
 $password = ''
 $authtype = ''
 $requestHeaders = false
 $responseHeaders = ''
 $document = ''
 $endpoint
 $error_str = false
 $proxyhost = ''
 $proxyport = ''
 $proxyusername = ''
 $proxypassword = ''
 $xml_encoding = ''
 $http_encoding = false
 $timeout = 0
 $response_timeout = 30
 $endpointType = ''
 $persistentConnection = false
 $defaultRpcParams = false
 $request = ''
 $response = ''
 $responseData = ''
 $decode_utf8 = true
 $fault
 $faultcode
 $faultstring
 $faultdetail

Detailed Description

soapclient higher level class for easy usage.

usage:

// instantiate client with server info $soapclient = new soapclient( string path [ ,boolean wsdl] );

// call method, get results echo $soapclient->call( string methodname [ ,array parameters] );

// bye bye client unset($soapclient);

Author:
Dietrich Ayala <dietrich@ganx4.com> public

usage:

// instantiate client with server info $soapclient = new soapclient( string path [ ,boolean wsdl] );

// call method, get results echo $soapclient->call( string methodname [ ,array parameters] );

// bye bye client unset($soapclient);

Author:
Dietrich Ayala <dietrich@ganx4.com>
Version:
Id:
class.soapclient.php 9095 2005-11-08 13:17:14Z smeyer

public

Definition at line 4968 of file nusoap.php.


Member Function Documentation

soap_client::call ( operation,
params = array(),
namespace = '',
soapAction = '',
headers = false,
rpcParams = null,
style = 'rpc',
use = 'encoded' 
)

calls method, returns PHP native type

Parameters:
string $method SOAP server URL or path
array $params An array, associative or simple, of the parameters for the method call, or a string that is the XML for the call. For rpc style, this call will wrap the XML in a tag named after the method, as well as the SOAP Envelope and Body. For document style, this will only wrap with the Envelope and Body. IMPORTANT: when using an array with document style, in which case there is really one parameter, the root of the fragment used in the call, which encloses what programmers normally think of parameters. A parameter array *must* include the wrapper.
string $namespace optional method namespace (WSDL can override)
string $soapAction optional SOAPAction value (WSDL can override)
boolean $headers optional array of soapval objects for headers
boolean $rpcParams optional no longer used
string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override)
string $use optional (encoded|literal) the use when serializing parameters (WSDL can override)
Returns:
mixed public

Definition at line 5084 of file nusoap.php.

References $key, $namespace, nusoap_base::$usedNamespaces, nusoap_base::debug(), nusoap_base::getError(), getHTTPBody(), getOperationData(), send(), nusoap_base::serialize_val(), nusoap_base::serializeEnvelope(), and nusoap_base::setError().

                                                                                                                                         {
                $this->operation = $operation;
                $this->fault = false;
                $this->error_str = '';
                $this->request = '';
                $this->response = '';
                $this->responseData = '';
                $this->faultstring = '';
                $this->faultcode = '';
                $this->opData = array();
                
                $this->debug("call: $operation, $params, $namespace, $soapAction, $headers, $style, $use; endpointType: $this->endpointType");
                if ($headers) {
                        $this->requestHeaders = $headers;
                }
                // serialize parameters
                if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){
                        // use WSDL for operation
                        $this->opData = $opData;
                        foreach($opData as $key => $value){
                                $this->debug("$key -> $value");
                        }
                        if (isset($opData['soapAction'])) {
                                $soapAction = $opData['soapAction'];
                        }
                        $this->endpoint = $opData['endpoint'];
                        $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] :     ($namespace != '' ? $namespace : 'http://testuri.org');
                        $style = $opData['style'];
                        $use = $opData['input']['use'];
                        // add ns to ns array
                        if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){
                                $this->wsdl->namespaces['nu'] = $namespace;
            }
            $nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace);
                        // serialize payload
                        if (is_string($params)) {
                                $this->debug("serializing param string for WSDL operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for WSDL operation $operation");
                                $payload = $this->wsdl->serializeRPCParameters($operation,'input',$params);
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
            $usedNamespaces = $this->wsdl->usedNamespaces;
                        // Partial fix for multiple encoding styles in the same function call
                        $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/';
                        if (isset($opData['output']['encodingStyle']) && $encodingStyle != $opData['output']['encodingStyle']) {
                                $methodEncodingStyle = ' SOAP-ENV:encodingStyle="' . $opData['output']['encodingStyle'] . '"';
                        } else {
                                $methodEncodingStyle = '';
                        }
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        if ($errstr = $this->wsdl->getError()) {
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                                return false;
                        }
                } elseif($this->endpointType == 'wsdl') {
                        // operation not in WSDL
                        $this->setError( 'operation '.$operation.' not present.');
                        $this->debug("operation '$operation' not present.");
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        return false;
                } else {
                        // no WSDL
            if($namespace == ''){
                $namespace = 'http://testuri.org';
            }
                        //$this->namespaces['ns1'] = $namespace;
                        $nsPrefix = 'ns1';
                        // serialize 
                        $payload = '';
                        if (is_string($params)) {
                                $this->debug("serializing param string for operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for operation $operation");
                                foreach($params as $k => $v){
                                        $payload .= $this->serialize_val($v,$k,false,false,false,false,$use);
                                }
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
                        $usedNamespaces = array();
                        $methodEncodingStyle = '';
                }
                // wrap RPC calls with method element
                if ($style == 'rpc') {
                        if ($use == 'literal') {
                                $this->debug("wrapping RPC request with literal method element");
                                $payload = "<$operation xmlns=\"$namespace\">" . $payload . "</$operation>";
                        } else {
                                $this->debug("wrapping RPC request with encoded method element");
                                $payload = "<$nsPrefix:$operation$methodEncodingStyle xmlns:$nsPrefix=\"$namespace\">" .
                                                        $payload .
                                                        "</$nsPrefix:$operation>";
                        }
                }
                // serialize envelope
                $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use);
//echo htmlentities($soapmsg)."<br><br>";
                $this->debug("endpoint: $this->endpoint, soapAction: $soapAction, namespace: $namespace, style: $style, use: $use");
                $this->debug('SOAP message length: ' . strlen($soapmsg) . ' contents: ' . substr($soapmsg, 0, 1000));
                // send
                $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout);
                if($errstr = $this->getError()){
                        $this->debug('Error: '.$errstr);
                        return false;
                } else {
                        $this->return = $return;
                        $this->debug('sent message successfully and got a(n) '.gettype($return).' back');
                        
                        // fault?
                        if(is_array($return) && isset($return['faultcode'])){
                                $this->debug('got fault');
                                $this->setError($return['faultcode'].': '.$return['faultstring']);
                                $this->fault = true;
                                foreach($return as $k => $v){
                                        $this->$k = $v;
                                        $this->debug("$k = $v<br>");
                                }
                                return $return;
                        } else {
                                // array of return values
                                if(is_array($return)){
                                        // multiple 'out' parameters
                                        if(sizeof($return) > 1){
                                                return $return;
                                        }
                                        // single 'out' parameter
                                        return array_shift($return);
                                // nothing returned (ie, echoVoid)
                                } else {
                                        return "";
                                }
                        }
                }
        }

Here is the call graph for this function:

soap_client::call ( operation,
params = array(),
namespace = '',
soapAction = '',
headers = false,
rpcParams = null,
style = 'rpc',
use = 'encoded' 
)

calls method, returns PHP native type

Parameters:
string $method SOAP server URL or path
array $params An array, associative or simple, of the parameters for the method call, or a string that is the XML for the call. For rpc style, this call will wrap the XML in a tag named after the method, as well as the SOAP Envelope and Body. For document style, this will only wrap with the Envelope and Body. IMPORTANT: when using an array with document style, in which case there is really one parameter, the root of the fragment used in the call, which encloses what programmers normally think of parameters. A parameter array *must* include the wrapper.
string $namespace optional method namespace (WSDL can override)
string $soapAction optional SOAPAction value (WSDL can override)
boolean $headers optional array of soapval objects for headers
boolean $rpcParams optional no longer used
string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override)
string $use optional (encoded|literal) the use when serializing parameters (WSDL can override)
Returns:
mixed public

Definition at line 141 of file class.soapclient.php.

References $key, $namespace, nusoap_base::$usedNamespaces, nusoap_base::debug(), nusoap_base::getError(), getHTTPBody(), getOperationData(), send(), nusoap_base::serialize_val(), nusoap_base::serializeEnvelope(), and nusoap_base::setError().

                                                                                                                                         {
                $this->operation = $operation;
                $this->fault = false;
                $this->error_str = '';
                $this->request = '';
                $this->response = '';
                $this->responseData = '';
                $this->faultstring = '';
                $this->faultcode = '';
                $this->opData = array();
                
                $this->debug("call: $operation, $params, $namespace, $soapAction, $headers, $style, $use; endpointType: $this->endpointType");
                if ($headers) {
                        $this->requestHeaders = $headers;
                }
                // serialize parameters
                if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){
                        // use WSDL for operation
                        $this->opData = $opData;
                        foreach($opData as $key => $value){
                                $this->debug("$key -> $value");
                        }
                        if (isset($opData['soapAction'])) {
                                $soapAction = $opData['soapAction'];
                        }
                        $this->endpoint = $opData['endpoint'];
                        $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] :     ($namespace != '' ? $namespace : 'http://testuri.org');
                        $style = $opData['style'];
                        $use = $opData['input']['use'];
                        // add ns to ns array
                        if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){
                                $this->wsdl->namespaces['nu'] = $namespace;
            }
            $nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace);
                        // serialize payload
                        if (is_string($params)) {
                                $this->debug("serializing param string for WSDL operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for WSDL operation $operation");
                                $payload = $this->wsdl->serializeRPCParameters($operation,'input',$params);
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
            $usedNamespaces = $this->wsdl->usedNamespaces;
                        // Partial fix for multiple encoding styles in the same function call
                        $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/';
                        if (isset($opData['output']['encodingStyle']) && $encodingStyle != $opData['output']['encodingStyle']) {
                                $methodEncodingStyle = ' SOAP-ENV:encodingStyle="' . $opData['output']['encodingStyle'] . '"';
                        } else {
                                $methodEncodingStyle = '';
                        }
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        if ($errstr = $this->wsdl->getError()) {
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                                return false;
                        }
                } elseif($this->endpointType == 'wsdl') {
                        // operation not in WSDL
                        $this->setError( 'operation '.$operation.' not present.');
                        $this->debug("operation '$operation' not present.");
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        return false;
                } else {
                        // no WSDL
            if($namespace == ''){
                $namespace = 'http://testuri.org';
            }
                        //$this->namespaces['ns1'] = $namespace;
                        $nsPrefix = 'ns1';
                        // serialize 
                        $payload = '';
                        if (is_string($params)) {
                                $this->debug("serializing param string for operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for operation $operation");
                                foreach($params as $k => $v){
                                        $payload .= $this->serialize_val($v,$k,false,false,false,false,$use);
                                }
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
                        $usedNamespaces = array();
                        $methodEncodingStyle = '';
                }
                // wrap RPC calls with method element
                if ($style == 'rpc') {
                        if ($use == 'literal') {
                                $this->debug("wrapping RPC request with literal method element");
                                $payload = "<$operation xmlns=\"$namespace\">" . $payload . "</$operation>";
                        } else {
                                $this->debug("wrapping RPC request with encoded method element");
                                $payload = "<$nsPrefix:$operation$methodEncodingStyle xmlns:$nsPrefix=\"$namespace\">" .
                                                        $payload .
                                                        "</$nsPrefix:$operation>";
                        }
                }
                // serialize envelope
                $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use);
                $this->debug("endpoint: $this->endpoint, soapAction: $soapAction, namespace: $namespace, style: $style, use: $use");
                $this->debug('SOAP message length: ' . strlen($soapmsg) . ' contents: ' . substr($soapmsg, 0, 1000));
                // send
                $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout);
                if($errstr = $this->getError()){
                        $this->debug('Error: '.$errstr);
                        return false;
                } else {
                        $this->return = $return;
                        $this->debug('sent message successfully and got a(n) '.gettype($return).' back');
                        
                        // fault?
                        if(is_array($return) && isset($return['faultcode'])){
                                $this->debug('got fault');
                                $this->setError($return['faultcode'].': '.$return['faultstring']);
                                $this->fault = true;
                                foreach($return as $k => $v){
                                        $this->$k = $v;
                                        $this->debug("$k = $v<br>");
                                }
                                return $return;
                        } else {
                                // array of return values
                                if(is_array($return)){
                                        // multiple 'out' parameters
                                        if(sizeof($return) > 1){
                                                return $return;
                                        }
                                        // single 'out' parameter
                                        return array_shift($return);
                                // nothing returned (ie, echoVoid)
                                } else {
                                        return "";
                                }
                        }
                }
        }

Here is the call graph for this function:

soap_client::call ( operation,
params = array(),
namespace = '',
soapAction = '',
headers = false,
rpcParams = null,
style = 'rpc',
use = 'encoded' 
)

calls method, returns PHP native type

Parameters:
string $method SOAP server URL or path
array $params An array, associative or simple, of the parameters for the method call, or a string that is the XML for the call. For rpc style, this call will wrap the XML in a tag named after the method, as well as the SOAP Envelope and Body. For document style, this will only wrap with the Envelope and Body. IMPORTANT: when using an array with document style, in which case there is really one parameter, the root of the fragment used in the call, which encloses what programmers normally think of parameters. A parameter array *must* include the wrapper.
string $namespace optional method namespace (WSDL can override)
string $soapAction optional SOAPAction value (WSDL can override)
boolean $headers optional array of soapval objects for headers
boolean $rpcParams optional no longer used
string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override)
string $use optional (encoded|literal) the use when serializing parameters (WSDL can override)
Returns:
mixed public

Definition at line 5084 of file nusoap.php.

References $key, $namespace, nusoap_base::$usedNamespaces, nusoap_base::debug(), nusoap_base::getError(), getHTTPBody(), getOperationData(), send(), nusoap_base::serialize_val(), nusoap_base::serializeEnvelope(), and nusoap_base::setError().

                                                                                                                                         {
                $this->operation = $operation;
                $this->fault = false;
                $this->error_str = '';
                $this->request = '';
                $this->response = '';
                $this->responseData = '';
                $this->faultstring = '';
                $this->faultcode = '';
                $this->opData = array();
                
                $this->debug("call: $operation, $params, $namespace, $soapAction, $headers, $style, $use; endpointType: $this->endpointType");
                if ($headers) {
                        $this->requestHeaders = $headers;
                }
                // serialize parameters
                if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){
                        // use WSDL for operation
                        $this->opData = $opData;
                        foreach($opData as $key => $value){
                                $this->debug("$key -> $value");
                        }
                        if (isset($opData['soapAction'])) {
                                $soapAction = $opData['soapAction'];
                        }
                        $this->endpoint = $opData['endpoint'];
                        $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] :     ($namespace != '' ? $namespace : 'http://testuri.org');
                        $style = $opData['style'];
                        $use = $opData['input']['use'];
                        // add ns to ns array
                        if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){
                                $this->wsdl->namespaces['nu'] = $namespace;
            }
            $nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace);
                        // serialize payload
                        if (is_string($params)) {
                                $this->debug("serializing param string for WSDL operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for WSDL operation $operation");
                                $payload = $this->wsdl->serializeRPCParameters($operation,'input',$params);
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
            $usedNamespaces = $this->wsdl->usedNamespaces;
                        // Partial fix for multiple encoding styles in the same function call
                        $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/';
                        if (isset($opData['output']['encodingStyle']) && $encodingStyle != $opData['output']['encodingStyle']) {
                                $methodEncodingStyle = ' SOAP-ENV:encodingStyle="' . $opData['output']['encodingStyle'] . '"';
                        } else {
                                $methodEncodingStyle = '';
                        }
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        if ($errstr = $this->wsdl->getError()) {
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                                return false;
                        }
                } elseif($this->endpointType == 'wsdl') {
                        // operation not in WSDL
                        $this->setError( 'operation '.$operation.' not present.');
                        $this->debug("operation '$operation' not present.");
                        $this->debug("wsdl debug: \n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        return false;
                } else {
                        // no WSDL
            if($namespace == ''){
                $namespace = 'http://testuri.org';
            }
                        //$this->namespaces['ns1'] = $namespace;
                        $nsPrefix = 'ns1';
                        // serialize 
                        $payload = '';
                        if (is_string($params)) {
                                $this->debug("serializing param string for operation $operation");
                                $payload = $params;
                        } elseif (is_array($params)) {
                                $this->debug("serializing param array for operation $operation");
                                foreach($params as $k => $v){
                                        $payload .= $this->serialize_val($v,$k,false,false,false,false,$use);
                                }
                        } else {
                                $this->debug('params must be array or string');
                                $this->setError('params must be array or string');
                                return false;
                        }
                        $usedNamespaces = array();
                        $methodEncodingStyle = '';
                }
                // wrap RPC calls with method element
                if ($style == 'rpc') {
                        if ($use == 'literal') {
                                $this->debug("wrapping RPC request with literal method element");
                                $payload = "<$operation xmlns=\"$namespace\">" . $payload . "</$operation>";
                        } else {
                                $this->debug("wrapping RPC request with encoded method element");
                                $payload = "<$nsPrefix:$operation$methodEncodingStyle xmlns:$nsPrefix=\"$namespace\">" .
                                                        $payload .
                                                        "</$nsPrefix:$operation>";
                        }
                }
                // serialize envelope
                $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use);
                $this->debug("endpoint: $this->endpoint, soapAction: $soapAction, namespace: $namespace, style: $style, use: $use");
                $this->debug('SOAP message length: ' . strlen($soapmsg) . ' contents: ' . substr($soapmsg, 0, 1000));
                // send
                $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout);
                if($errstr = $this->getError()){
                        $this->debug('Error: '.$errstr);
                        return false;
                } else {
                        $this->return = $return;
                        $this->debug('sent message successfully and got a(n) '.gettype($return).' back');
                        
                        // fault?
                        if(is_array($return) && isset($return['faultcode'])){
                                $this->debug('got fault');
                                $this->setError($return['faultcode'].': '.$return['faultstring']);
                                $this->fault = true;
                                foreach($return as $k => $v){
                                        $this->$k = $v;
                                        $this->debug("$k = $v<br>");
                                }
                                return $return;
                        } else {
                                // array of return values
                                if(is_array($return)){
                                        // multiple 'out' parameters
                                        if(sizeof($return) > 1){
                                                return $return;
                                        }
                                        // single 'out' parameter
                                        return array_shift($return);
                                // nothing returned (ie, echoVoid)
                                } else {
                                        return "";
                                }
                        }
                }
        }

Here is the call graph for this function:

soap_client::decodeUTF8 ( bool  ) 

Definition at line 632 of file class.soapclient.php.

                              {
                $this->decode_utf8 = $bool;
                return true;
    }

soap_client::decodeUTF8 ( bool  ) 

Definition at line 5577 of file nusoap.php.

                              {
                $this->decode_utf8 = $bool;
                return true;
    }

soap_client::decodeUTF8 ( bool  ) 

Definition at line 5575 of file nusoap.php.

                              {
                $this->decode_utf8 = $bool;
                return true;
    }

soap_client::getDefaultRpcParams (  ) 

gets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style. Each call() can override this value.

This is no longer used.

public

Deprecated:

Definition at line 5463 of file nusoap.php.

                                       {
                return $this->defaultRpcParams;
        }

soap_client::getDefaultRpcParams (  ) 

gets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style. Each call() can override this value.

This is no longer used.

public

Deprecated:

Definition at line 5461 of file nusoap.php.

                                       {
                return $this->defaultRpcParams;
        }

soap_client::getDefaultRpcParams (  ) 

gets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style. Each call() can override this value.

This is no longer used.

public

Deprecated:

Definition at line 518 of file class.soapclient.php.

                                       {
                return $this->defaultRpcParams;
        }

soap_client::getHeaders (  ) 

get the response headers

Returns:
mixed object SOAPx4 soapval object or empty if no headers public

Definition at line 5396 of file nusoap.php.

                             {
            if($this->responseHeaders != '') {
                        return $this->responseHeaders;
            }
        }

soap_client::getHeaders (  ) 

get the response headers

Returns:
mixed object SOAPx4 soapval object or empty if no headers public

Definition at line 5398 of file nusoap.php.

                             {
            if($this->responseHeaders != '') {
                        return $this->responseHeaders;
            }
        }

soap_client::getHeaders (  ) 

get the response headers

Returns:
mixed object SOAPx4 soapval object or empty if no headers public

Definition at line 453 of file class.soapclient.php.

                             {
            if($this->responseHeaders != '') {
                        return $this->responseHeaders;
            }
        }

soap_client::getHTTPBody ( soapmsg  ) 

gets the HTTP body for the current request.

Parameters:
string $soapmsg The SOAP payload
Returns:
string The HTTP body, which includes the SOAP payload protected

Reimplemented in soapclientmime.

Definition at line 597 of file class.soapclient.php.

                                       {
                return $soapmsg;
        }

soap_client::getHTTPBody ( soapmsg  ) 

gets the HTTP body for the current request.

Parameters:
string $soapmsg The SOAP payload
Returns:
string The HTTP body, which includes the SOAP payload protected

Reimplemented in soapclientmime.

Definition at line 5540 of file nusoap.php.

                                       {
                return $soapmsg;
        }

soap_client::getHTTPBody ( soapmsg  ) 

gets the HTTP body for the current request.

Parameters:
string $soapmsg The SOAP payload
Returns:
string The HTTP body, which includes the SOAP payload protected

Reimplemented in soapclientmime.

Definition at line 5542 of file nusoap.php.

Referenced by call().

                                       {
                return $soapmsg;
        }

Here is the caller graph for this function:

soap_client::getHTTPContentType (  ) 

gets the HTTP content type for the current request.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type for the current request. protected

Reimplemented in soapclientmime.

Definition at line 5554 of file nusoap.php.

Referenced by send().

                                      {
                return 'text/xml';
        }

Here is the caller graph for this function:

soap_client::getHTTPContentType (  ) 

gets the HTTP content type for the current request.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type for the current request. protected

Reimplemented in soapclientmime.

Definition at line 609 of file class.soapclient.php.

                                      {
                return 'text/xml';
        }

soap_client::getHTTPContentType (  ) 

gets the HTTP content type for the current request.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type for the current request. protected

Reimplemented in soapclientmime.

Definition at line 5552 of file nusoap.php.

                                      {
                return 'text/xml';
        }

soap_client::getHTTPContentTypeCharset (  ) 

gets the HTTP content type charset for the current request.

returns false for non-text content types.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type charset for the current request. protected

Reimplemented in soapclientmime.

Definition at line 622 of file class.soapclient.php.

                                             {
                return $this->soap_defencoding;
        }

soap_client::getHTTPContentTypeCharset (  ) 

gets the HTTP content type charset for the current request.

returns false for non-text content types.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type charset for the current request. protected

Reimplemented in soapclientmime.

Definition at line 5567 of file nusoap.php.

Referenced by send().

                                             {
                return $this->soap_defencoding;
        }

Here is the caller graph for this function:

soap_client::getHTTPContentTypeCharset (  ) 

gets the HTTP content type charset for the current request.

returns false for non-text content types.

Note: getHTTPBody must be called before this.

Returns:
string the HTTP content type charset for the current request. protected

Reimplemented in soapclientmime.

Definition at line 5565 of file nusoap.php.

                                             {
                return $this->soap_defencoding;
        }

soap_client::getOperationData ( operation  ) 

get available data pertaining to an operation

Parameters:
string $operation operation name
Returns:
array array of data pertaining to the operation public

Definition at line 5236 of file nusoap.php.

References nusoap_base::debug().

                                             {
                if(isset($this->operations[$operation])){
                        return $this->operations[$operation];
                }
                $this->debug("No data for operation: $operation");
        }

Here is the call graph for this function:

soap_client::getOperationData ( operation  ) 

get available data pertaining to an operation

Parameters:
string $operation operation name
Returns:
array array of data pertaining to the operation public

Definition at line 293 of file class.soapclient.php.

References nusoap_base::debug().

                                             {
                if(isset($this->operations[$operation])){
                        return $this->operations[$operation];
                }
                $this->debug("No data for operation: $operation");
        }

Here is the call graph for this function:

soap_client::getOperationData ( operation  ) 

get available data pertaining to an operation

Parameters:
string $operation operation name
Returns:
array array of data pertaining to the operation public

Definition at line 5237 of file nusoap.php.

References nusoap_base::debug().

Referenced by call().

                                             {
                if(isset($this->operations[$operation])){
                        return $this->operations[$operation];
                }
                $this->debug("No data for operation: $operation");
        }

Here is the call graph for this function:

Here is the caller graph for this function:

soap_client::getProxy (  ) 

dynamically creates proxy class, allowing user to directly call methods from wsdl

Returns:
object soap_proxy object public

Definition at line 540 of file class.soapclient.php.

References $type.

                           {
                $evalStr = '';
                foreach($this->operations as $operation => $opData){
                        if($operation != ''){
                                // create param string
                                $paramStr = '';
                                if(sizeof($opData['input']['parts']) > 0){
                                        foreach($opData['input']['parts'] as $name => $type){
                                                $paramStr .= "\$$name,";
                                        }
                                        $paramStr = substr($paramStr,0,strlen($paramStr)-1);
                                }
                                $opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
                                $evalStr .= "function $operation ($paramStr){
                                        // load params into array
                                        \$params = array($paramStr);
                                        return \$this->call('$operation',\$params,'".$opData['namespace']."','".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
                                }";
                                unset($paramStr);
                        }
                }
                $r = rand();
                $evalStr = 'class soap_proxy_'.$r.' extends soap_client {
                                '.$evalStr.'
                        }';
                //print "proxy class:<pre>$evalStr</pre>";
                // eval the class
                eval($evalStr);
                // instantiate proxy object
                eval("\$proxy = new soap_proxy_$r('');");
                // transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice
                $proxy->endpointType = 'wsdl';
                $proxy->wsdlFile = $this->wsdlFile;
                $proxy->wsdl = $this->wsdl;
                $proxy->operations = $this->operations;
                $proxy->defaultRpcParams = $this->defaultRpcParams;
                // transfer other state
                $proxy->username = $this->username;
                $proxy->password = $this->password;
                $proxy->proxyhost = $this->proxyhost;
                $proxy->proxyport = $this->proxyport;
                $proxy->proxyusername = $this->proxyusername;
                $proxy->proxypassword = $this->proxypassword;
                $proxy->timeout = $this->timeout;
                $proxy->response_timeout = $this->response_timeout;
                $proxy->http_encoding = $this->http_encoding;
                $proxy->persistentConnection = $this->persistentConnection;
                return $proxy;
        }

soap_client::getProxy (  ) 

dynamically creates proxy class, allowing user to directly call methods from wsdl

Returns:
object soap_proxy object public

Definition at line 5483 of file nusoap.php.

References $type.

                           {
                $evalStr = '';
                foreach($this->operations as $operation => $opData){
                        if($operation != ''){
                                // create param string
                                $paramStr = '';
                                if(sizeof($opData['input']['parts']) > 0){
                                        foreach($opData['input']['parts'] as $name => $type){
                                                $paramStr .= "\$$name,";
                                        }
                                        $paramStr = substr($paramStr,0,strlen($paramStr)-1);
                                }
                                $opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
                                $evalStr .= "function $operation ($paramStr){
                                        // load params into array
                                        \$params = array($paramStr);
                                        return \$this->call('$operation',\$params,'".$opData['namespace']."','".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
                                }";
                                unset($paramStr);
                        }
                }
                $r = rand();
                $evalStr = 'class soap_proxy_'.$r.' extends soap_client {
                                '.$evalStr.'
                        }';
                //print "proxy class:<pre>$evalStr</pre>";
                // eval the class
                eval($evalStr);
                // instantiate proxy object
                eval("\$proxy = new soap_proxy_$r('');");
                // transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice
                $proxy->endpointType = 'wsdl';
                $proxy->wsdlFile = $this->wsdlFile;
                $proxy->wsdl = $this->wsdl;
                $proxy->operations = $this->operations;
                $proxy->defaultRpcParams = $this->defaultRpcParams;
                // transfer other state
                $proxy->username = $this->username;
                $proxy->password = $this->password;
                $proxy->proxyhost = $this->proxyhost;
                $proxy->proxyport = $this->proxyport;
                $proxy->proxyusername = $this->proxyusername;
                $proxy->proxypassword = $this->proxypassword;
                $proxy->timeout = $this->timeout;
                $proxy->response_timeout = $this->response_timeout;
                $proxy->http_encoding = $this->http_encoding;
                $proxy->persistentConnection = $this->persistentConnection;
                return $proxy;
        }

soap_client::getProxy (  ) 

dynamically creates proxy class, allowing user to directly call methods from wsdl

Returns:
object soap_proxy object public

Definition at line 5485 of file nusoap.php.

References $type.

                           {
                $evalStr = '';
                foreach($this->operations as $operation => $opData){
                        if($operation != ''){
                                // create param string
                                $paramStr = '';
                                if(sizeof($opData['input']['parts']) > 0){
                                        foreach($opData['input']['parts'] as $name => $type){
                                                $paramStr .= "\$$name,";
                                        }
                                        $paramStr = substr($paramStr,0,strlen($paramStr)-1);
                                }
                                $opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
                                $evalStr .= "function $operation ($paramStr){
                                        // load params into array
                                        \$params = array($paramStr);
                                        return \$this->call('$operation',\$params,'".$opData['namespace']."','".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
                                }";
                                unset($paramStr);
                        }
                }
                $r = rand();
                $evalStr = 'class soap_proxy_'.$r.' extends soap_client {
                                '.$evalStr.'
                        }';
                //print "proxy class:<pre>$evalStr</pre>";
                // eval the class
                eval($evalStr);
                // instantiate proxy object
                eval("\$proxy = new soap_proxy_$r('');");
                // transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice
                $proxy->endpointType = 'wsdl';
                $proxy->wsdlFile = $this->wsdlFile;
                $proxy->wsdl = $this->wsdl;
                $proxy->operations = $this->operations;
                $proxy->defaultRpcParams = $this->defaultRpcParams;
                // transfer other state
                $proxy->username = $this->username;
                $proxy->password = $this->password;
                $proxy->proxyhost = $this->proxyhost;
                $proxy->proxyport = $this->proxyport;
                $proxy->proxyusername = $this->proxyusername;
                $proxy->proxypassword = $this->proxypassword;
                $proxy->timeout = $this->timeout;
                $proxy->response_timeout = $this->response_timeout;
                $proxy->http_encoding = $this->http_encoding;
                $proxy->persistentConnection = $this->persistentConnection;
                return $proxy;
        }

soap_client::parseResponse ( headers,
data 
)

processes SOAP message returned from server

Parameters:
array $headers The HTTP headers
string $data unprocessed response data from server
Returns:
mixed value of the message, decoded into a PHP type protected

Reimplemented in soapclientmime.

Definition at line 5339 of file nusoap.php.

References $data, nusoap_base::debug(), and nusoap_base::setError().

Referenced by send().

                                            {
                $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' and type ' . $headers['content-type']);
                if (!strstr($headers['content-type'], 'text/xml')) {
echo "-".$data."<br /><br />".htmlentities($data)."-";
                        $this->setError('Response not of type text/xml');
                        return false;
                }
                if (strpos($headers['content-type'], '=')) {
                        $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
                        $this->debug('Got response encoding: ' . $enc);
                        if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
                                $this->xml_encoding = strtoupper($enc);
                        } else {
                                $this->xml_encoding = 'US-ASCII';
                        }
                } else {
                        // should be US-ASCII, but for XML, let's be pragmatic and admit UTF-8 is most common
                        $this->xml_encoding = 'UTF-8';
                }
                $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating soap_parser');
                $parser = new soap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
                // add parser debug data to our debug
                $this->debug($parser->debug_str);
                // if parse errors
                if($errstr = $parser->getError()){
                        $this->setError( $errstr);
                        // destroy the parser object
                        unset($parser);
                        return false;
                } else {
                        // get SOAP headers
                        $this->responseHeaders = $parser->getHeaders();
                        // get decoded message
                        $return = $parser->get_response();
            // add document for doclit support
            $this->document = $parser->document;
                        // destroy the parser object
                        unset($parser);
                        // return decode message
                        return $return;
                }
         }

Here is the call graph for this function:

Here is the caller graph for this function:

soap_client::parseResponse ( headers,
data 
)

processes SOAP message returned from server

Parameters:
array $headers The HTTP headers
string $data unprocessed response data from server
Returns:
mixed value of the message, decoded into a PHP type protected

Reimplemented in soapclientmime.

Definition at line 5338 of file nusoap.php.

References $data, nusoap_base::debug(), and nusoap_base::setError().

                                            {
                $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' and type ' . $headers['content-type']);
                if (!strstr($headers['content-type'], 'text/xml')) {
                        $this->setError('Response not of type text/xml');
                        return false;
                }
                if (strpos($headers['content-type'], '=')) {
                        $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
                        $this->debug('Got response encoding: ' . $enc);
                        if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
                                $this->xml_encoding = strtoupper($enc);
                        } else {
                                $this->xml_encoding = 'US-ASCII';
                        }
                } else {
                        // should be US-ASCII, but for XML, let's be pragmatic and admit UTF-8 is most common
                        $this->xml_encoding = 'UTF-8';
                }
                $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating soap_parser');
                $parser = new soap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
                // add parser debug data to our debug
                $this->debug($parser->debug_str);
                // if parse errors
                if($errstr = $parser->getError()){
                        $this->setError( $errstr);
                        // destroy the parser object
                        unset($parser);
                        return false;
                } else {
                        // get SOAP headers
                        $this->responseHeaders = $parser->getHeaders();
                        // get decoded message
                        $return = $parser->get_response();
            // add document for doclit support
            $this->document = $parser->document;
                        // destroy the parser object
                        unset($parser);
                        // return decode message
                        return $return;
                }
         }

Here is the call graph for this function:

soap_client::parseResponse ( headers,
data 
)

processes SOAP message returned from server

Parameters:
array $headers The HTTP headers
string $data unprocessed response data from server
Returns:
mixed value of the message, decoded into a PHP type protected

Reimplemented in soapclientmime.

Definition at line 395 of file class.soapclient.php.

References $data, nusoap_base::debug(), and nusoap_base::setError().

                                            {
                $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' and type ' . $headers['content-type']);
                if (!strstr($headers['content-type'], 'text/xml')) {
                        $this->setError('Response not of type text/xml');
                        return false;
                }
                if (strpos($headers['content-type'], '=')) {
                        $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1));
                        $this->debug('Got response encoding: ' . $enc);
                        if(eregi('^(ISO-8859-1|US-ASCII|UTF-8)$',$enc)){
                                $this->xml_encoding = strtoupper($enc);
                        } else {
                                $this->xml_encoding = 'US-ASCII';
                        }
                } else {
                        // should be US-ASCII, but for XML, let's be pragmatic and admit UTF-8 is most common
                        $this->xml_encoding = 'UTF-8';
                }
                $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating soap_parser');
                $parser = new soap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
                // add parser debug data to our debug
                $this->debug($parser->debug_str);
                // if parse errors
                if($errstr = $parser->getError()){
                        $this->setError( $errstr);
                        // destroy the parser object
                        unset($parser);
                        return false;
                } else {
                        // get SOAP headers
                        $this->responseHeaders = $parser->getHeaders();
                        // get decoded message
                        $return = $parser->get_response();
            // add document for doclit support
            $this->document = $parser->document;
                        // destroy the parser object
                        unset($parser);
                        // return decode message
                        return $return;
                }
         }

Here is the call graph for this function:

soap_client::send ( msg,
soapaction = '',
timeout = 0,
response_timeout = 30 
)

send the SOAP message

Note: if the operation has multiple return values the return value of this method will be an array of those values.

Parameters:
string $msg a SOAPx4 soapmsg object
string $soapaction SOAPAction value
integer $timeout set connection timeout in seconds
integer $response_timeout set response timeout in seconds
Returns:
mixed native PHP types. private

Definition at line 5258 of file nusoap.php.

References $response_timeout, $timeout, nusoap_base::debug(), nusoap_base::getError(), getHTTPContentType(), getHTTPContentTypeCharset(), parseResponse(), and nusoap_base::setError().

Referenced by call().

                                                                                {
                // detect transport
                switch(true){
                        // http(s)
                        case ereg('^http',$this->endpoint):
                                $this->debug('transporting via HTTP');
                                if($this->persistentConnection == true && is_object($this->persistentConnection)){
                                        $http =& $this->persistentConnection;
                                } else {
                                        $http = new soap_transport_http($this->endpoint);
                                        if ($this->persistentConnection) {
                                                $http->usePersistentConnection();
                                        }
                                }
                                $http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset());
                                $http->setSOAPAction($soapaction);
                                if($this->proxyhost && $this->proxyport){
                                        $http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword);
                                }
                if($this->username != '' && $this->password != '') {
                                        $http->setCredentials($this->username, $this->password, $this->authtype);
                                }
                                if($this->http_encoding != ''){
                                        $http->setEncoding($this->http_encoding);
                                }
                                $this->debug('sending message, length: '.strlen($msg));
                                if(ereg('^http:',$this->endpoint)){
                                //if(strpos($this->endpoint,'http:')){
                                        $this->responseData = $http->send($msg,$timeout,$response_timeout);
                                } elseif(ereg('^https',$this->endpoint)){
                                //} elseif(strpos($this->endpoint,'https:')){
                                        //if(phpversion() == '4.3.0-dev'){
                                                //$response = $http->send($msg,$timeout,$response_timeout);
                                //$this->request = $http->outgoing_payload;
                                                //$this->response = $http->incoming_payload;
                                        //} else
                                        if (extension_loaded('curl')) {
                                                $this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout);
                                        } else {
                                                $this->setError('CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS');
                                        }                                                               
                                } else {
                                        $this->setError('no http/s in endpoint url');
                                }
                                $this->request = $http->outgoing_payload;
                                $this->response = $http->incoming_payload;
                                $this->debug("transport debug data...\n".$http->debug_str);
                                
                                // save transport object if using persistent connections
                                if ($this->persistentConnection) {
                                        $http->debug_str = '';
                                        if (!is_object($this->persistentConnection)) {
                                                $this->persistentConnection = $http;
                                        }
                                }
                                
                                if($err = $http->getError()){
                                        $this->setError('HTTP Error: '.$err);
                                        return false;
                                } elseif($this->getError()){
                                        return false;
                                } else {
                                        $this->debug('got response, length: '. strlen($this->responseData).' type: '.$http->incoming_headers['content-type']);
                                        return $this->parseResponse($http->incoming_headers, $this->responseData);
                                }
                        break;
                        default:
                                $this->setError('no transport found, or selected transport is not yet supported!');
                        return false;
                        break;
                }
        }

Here is the call graph for this function:

Here is the caller graph for this function:

soap_client::send ( msg,
soapaction = '',
timeout = 0,
response_timeout = 30 
)

send the SOAP message

Note: if the operation has multiple return values the return value of this method will be an array of those values.

Parameters:
string $msg a SOAPx4 soapmsg object
string $soapaction SOAPAction value
integer $timeout set connection timeout in seconds
integer $response_timeout set response timeout in seconds
Returns:
mixed native PHP types. private

Definition at line 314 of file class.soapclient.php.

References $response_timeout, $timeout, nusoap_base::debug(), nusoap_base::getError(), getHTTPContentType(), getHTTPContentTypeCharset(), parseResponse(), and nusoap_base::setError().

                                                                                {
                // detect transport
                switch(true){
                        // http(s)
                        case ereg('^http',$this->endpoint):
                                $this->debug('transporting via HTTP');
                                if($this->persistentConnection == true && is_object($this->persistentConnection)){
                                        $http =& $this->persistentConnection;
                                } else {
                                        $http = new soap_transport_http($this->endpoint);
                                        if ($this->persistentConnection) {
                                                $http->usePersistentConnection();
                                        }
                                }
                                $http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset());
                                $http->setSOAPAction($soapaction);
                                if($this->proxyhost && $this->proxyport){
                                        $http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword);
                                }
                if($this->username != '' && $this->password != '') {
                                        $http->setCredentials($this->username, $this->password, $this->authtype);
                                }
                                if($this->http_encoding != ''){
                                        $http->setEncoding($this->http_encoding);
                                }
                                $this->debug('sending message, length: '.strlen($msg));
                                if(ereg('^http:',$this->endpoint)){
                                //if(strpos($this->endpoint,'http:')){
                                        $this->responseData = $http->send($msg,$timeout,$response_timeout);
                                } elseif(ereg('^https',$this->endpoint)){
                                //} elseif(strpos($this->endpoint,'https:')){
                                        //if(phpversion() == '4.3.0-dev'){
                                                //$response = $http->send($msg,$timeout,$response_timeout);
                                //$this->request = $http->outgoing_payload;
                                                //$this->response = $http->incoming_payload;
                                        //} else
                                        if (extension_loaded('curl')) {
                                                $this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout);
                                        } else {
                                                $this->setError('CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS');
                                        }                                                               
                                } else {
                                        $this->setError('no http/s in endpoint url');
                                }
                                $this->request = $http->outgoing_payload;
                                $this->response = $http->incoming_payload;
                                $this->debug("transport debug data...\n".$http->debug_str);
                                
                                // save transport object if using persistent connections
                                if ($this->persistentConnection) {
                                        $http->debug_str = '';
                                        if (!is_object($this->persistentConnection)) {
                                                $this->persistentConnection = $http;
                                        }
                                }
                                
                                if($err = $http->getError()){
                                        $this->setError('HTTP Error: '.$err);
                                        return false;
                                } elseif($this->getError()){
                                        return false;
                                } else {
                                        $this->debug('got response, length: '. strlen($this->responseData).' type: '.$http->incoming_headers['content-type']);
                                        return $this->parseResponse($http->incoming_headers, $this->responseData);
                                }
                        break;
                        default:
                                $this->setError('no transport found, or selected transport is not yet supported!');
                        return false;
                        break;
                }
        }

Here is the call graph for this function:

soap_client::send ( msg,
soapaction = '',
timeout = 0,
response_timeout = 30 
)

send the SOAP message

Note: if the operation has multiple return values the return value of this method will be an array of those values.

Parameters:
string $msg a SOAPx4 soapmsg object
string $soapaction SOAPAction value
integer $timeout set connection timeout in seconds
integer $response_timeout set response timeout in seconds
Returns:
mixed native PHP types. private

Definition at line 5257 of file nusoap.php.

References $response_timeout, $timeout, nusoap_base::debug(), nusoap_base::getError(), getHTTPContentType(), getHTTPContentTypeCharset(), parseResponse(), and nusoap_base::setError().

                                                                                {
                // detect transport
                switch(true){
                        // http(s)
                        case ereg('^http',$this->endpoint):
                                $this->debug('transporting via HTTP');
                                if($this->persistentConnection == true && is_object($this->persistentConnection)){
                                        $http =& $this->persistentConnection;
                                } else {
                                        $http = new soap_transport_http($this->endpoint);
                                        if ($this->persistentConnection) {
                                                $http->usePersistentConnection();
                                        }
                                }
                                $http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset());
                                $http->setSOAPAction($soapaction);
                                if($this->proxyhost && $this->proxyport){
                                        $http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword);
                                }
                if($this->username != '' && $this->password != '') {
                                        $http->setCredentials($this->username, $this->password, $this->authtype);
                                }
                                if($this->http_encoding != ''){
                                        $http->setEncoding($this->http_encoding);
                                }
                                $this->debug('sending message, length: '.strlen($msg));
                                if(ereg('^http:',$this->endpoint)){
                                //if(strpos($this->endpoint,'http:')){
                                        $this->responseData = $http->send($msg,$timeout,$response_timeout);
                                } elseif(ereg('^https',$this->endpoint)){
                                //} elseif(strpos($this->endpoint,'https:')){
                                        //if(phpversion() == '4.3.0-dev'){
                                                //$response = $http->send($msg,$timeout,$response_timeout);
                                //$this->request = $http->outgoing_payload;
                                                //$this->response = $http->incoming_payload;
                                        //} else
                                        if (extension_loaded('curl')) {
                                                $this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout);
                                        } else {
                                                $this->setError('CURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS');
                                        }                                                               
                                } else {
                                        $this->setError('no http/s in endpoint url');
                                }
                                $this->request = $http->outgoing_payload;
                                $this->response = $http->incoming_payload;
                                $this->debug("transport debug data...\n".$http->debug_str);
                                
                                // save transport object if using persistent connections
                                if ($this->persistentConnection) {
                                        $http->debug_str = '';
                                        if (!is_object($this->persistentConnection)) {
                                                $this->persistentConnection = $http;
                                        }
                                }
                                
                                if($err = $http->getError()){
                                        $this->setError('HTTP Error: '.$err);
                                        return false;
                                } elseif($this->getError()){
                                        return false;
                                } else {
                                        $this->debug('got response, length: '. strlen($this->responseData).' type: '.$http->incoming_headers['content-type']);
                                        return $this->parseResponse($http->incoming_headers, $this->responseData);
                                }
                        break;
                        default:
                                $this->setError('no transport found, or selected transport is not yet supported!');
                        return false;
                        break;
                }
        }

Here is the call graph for this function:

soap_client::setCredentials ( username,
password,
authtype = 'basic' 
)

if authenticating, set user credentials here

Parameters:
string $username
string $password
string $authtype (basic|digest) public

Definition at line 5428 of file nusoap.php.

References $authtype, $password, and $username.

                                                                           {
                $this->username = $username;
                $this->password = $password;
                $this->authtype = $authtype;
        }

soap_client::setCredentials ( username,
password,
authtype = 'basic' 
)

if authenticating, set user credentials here

Parameters:
string $username
string $password
string $authtype (basic|digest) public

Definition at line 483 of file class.soapclient.php.

References $authtype, $password, and $username.

                                                                           {
                $this->username = $username;
                $this->password = $password;
                $this->authtype = $authtype;
        }

soap_client::setCredentials ( username,
password,
authtype = 'basic' 
)

if authenticating, set user credentials here

Parameters:
string $username
string $password
string $authtype (basic|digest) public

Definition at line 5426 of file nusoap.php.

References $authtype, $password, and $username.

                                                                           {
                $this->username = $username;
                $this->password = $password;
                $this->authtype = $authtype;
        }

soap_client::setDefaultRpcParams ( rpcParams  ) 

sets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style Each call() can override this value.

Parameters:
boolean $rpcParams public

Definition at line 5475 of file nusoap.php.

                                                 {
                $this->defaultRpcParams = $rpcParams;
        }

soap_client::setDefaultRpcParams ( rpcParams  ) 

sets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style Each call() can override this value.

Parameters:
boolean $rpcParams public

Definition at line 5473 of file nusoap.php.

                                                 {
                $this->defaultRpcParams = $rpcParams;
        }

soap_client::setDefaultRpcParams ( rpcParams  ) 

sets the default RPC parameter setting.

If true, default is that call params are like RPC even for document style Each call() can override this value.

Parameters:
boolean $rpcParams public

Definition at line 530 of file class.soapclient.php.

                                                 {
                $this->defaultRpcParams = $rpcParams;
        }

soap_client::setHeaders ( headers  ) 

set the SOAP headers

Parameters:
$headers string XML public

Definition at line 5386 of file nusoap.php.

                                     {
                $this->requestHeaders = $headers;
        }

soap_client::setHeaders ( headers  ) 

set the SOAP headers

Parameters:
$headers string XML public

Definition at line 5388 of file nusoap.php.

                                     {
                $this->requestHeaders = $headers;
        }

soap_client::setHeaders ( headers  ) 

set the SOAP headers

Parameters:
$headers string XML public

Definition at line 443 of file class.soapclient.php.

                                     {
                $this->requestHeaders = $headers;
        }

soap_client::setHTTPEncoding ( enc = 'gzip,
deflate'   
)

use HTTP encoding

Parameters:
string $enc public

Definition at line 5440 of file nusoap.php.

                                                      {
                $this->http_encoding = $enc;
        }

soap_client::setHTTPEncoding ( enc = 'gzip,
deflate'   
)

use HTTP encoding

Parameters:
string $enc public

Definition at line 495 of file class.soapclient.php.

                                                      {
                $this->http_encoding = $enc;
        }

soap_client::setHTTPEncoding ( enc = 'gzip,
deflate'   
)

use HTTP encoding

Parameters:
string $enc public

Definition at line 5438 of file nusoap.php.

                                                      {
                $this->http_encoding = $enc;
        }

soap_client::setHTTPProxy ( proxyhost,
proxyport,
proxyusername = '',
proxypassword = '' 
)

set proxy info here

Parameters:
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword public

Definition at line 5413 of file nusoap.php.

References $proxyhost, $proxypassword, $proxyport, and $proxyusername.

                                                                                                {
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
        }

soap_client::setHTTPProxy ( proxyhost,
proxyport,
proxyusername = '',
proxypassword = '' 
)

set proxy info here

Parameters:
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword public

Definition at line 468 of file class.soapclient.php.

References $proxyhost, $proxypassword, $proxyport, and $proxyusername.

                                                                                                {
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
        }

soap_client::setHTTPProxy ( proxyhost,
proxyport,
proxyusername = '',
proxypassword = '' 
)

set proxy info here

Parameters:
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword public

Definition at line 5411 of file nusoap.php.

References $proxyhost, $proxypassword, $proxyport, and $proxyusername.

                                                                                                {
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
        }

soap_client::soap_client ( endpoint,
wsdl = false,
proxyhost = false,
proxyport = false,
proxyusername = false,
proxypassword = false,
timeout = 0,
response_timeout = 30 
)

constructor

Parameters:
mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object)
bool $wsdl optional, set to true if using WSDL
int $portName optional portName in WSDL document
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword
integer $timeout set the connection timeout
integer $response_timeout set the response timeout public

Definition at line 5020 of file nusoap.php.

References $endpoint, $proxyhost, $proxypassword, $proxyport, $proxyusername, $response_timeout, $timeout, nusoap_base::debug(), and nusoap_base::setError().

                                                                                                                                                                                {
                $this->endpoint = $endpoint;
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
                $this->timeout = $timeout;
                $this->response_timeout = $response_timeout;

                // make values
                if($wsdl){
                        $this->endpointType = 'wsdl';
                        if (is_object($endpoint) && is_a($endpoint, 'wsdl')) {
                                $this->wsdl = $endpoint;
                                $this->endpoint = $this->wsdl->wsdl;
                                $this->wsdlFile = $this->endpoint;
                                $this->debug('existing wsdl instance created from ' . $this->endpoint);
                        } else {
                                $this->wsdlFile = $this->endpoint;
                                
                                // instantiate wsdl object and parse wsdl file
                                $this->debug('instantiating wsdl class with doc: '.$endpoint);
                                $this->wsdl =& new wsdl($this->wsdlFile,$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout);
                        }
                        $this->debug("wsdl debug...\n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        // catch errors
                        if($errstr = $this->wsdl->getError()){
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                        } elseif($this->operations = $this->wsdl->getOperations()){
                                $this->debug( 'got '.count($this->operations).' operations from wsdl '.$this->wsdlFile);
                        } else {
                                $this->debug( 'getOperations returned false');
                                $this->setError('no operations defined in the WSDL document!');
                        }
                }
        }

Here is the call graph for this function:

soap_client::soap_client ( endpoint,
wsdl = false,
proxyhost = false,
proxyport = false,
proxyusername = false,
proxypassword = false,
timeout = 0,
response_timeout = 30 
)

constructor

Parameters:
mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object)
bool $wsdl optional, set to true if using WSDL
int $portName optional portName in WSDL document
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword
integer $timeout set the connection timeout
integer $response_timeout set the response timeout public

Definition at line 5020 of file nusoap.php.

References $endpoint, $proxyhost, $proxypassword, $proxyport, $proxyusername, $response_timeout, $timeout, nusoap_base::debug(), and nusoap_base::setError().

                                                                                                                                                                                {
                $this->endpoint = $endpoint;
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
                $this->timeout = $timeout;
                $this->response_timeout = $response_timeout;

                // make values
                if($wsdl){
                        $this->endpointType = 'wsdl';
                        if (is_object($endpoint) && is_a($endpoint, 'wsdl')) {
                                $this->wsdl = $endpoint;
                                $this->endpoint = $this->wsdl->wsdl;
                                $this->wsdlFile = $this->endpoint;
                                $this->debug('existing wsdl instance created from ' . $this->endpoint);
                        } else {
                                $this->wsdlFile = $this->endpoint;
                                
                                // instantiate wsdl object and parse wsdl file
                                $this->debug('instantiating wsdl class with doc: '.$endpoint);
                                $this->wsdl =& new wsdl($this->wsdlFile,$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout);
                        }
                        $this->debug("wsdl debug...\n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        // catch errors
                        if($errstr = $this->wsdl->getError()){
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                        } elseif($this->operations = $this->wsdl->getOperations()){
                                $this->debug( 'got '.count($this->operations).' operations from wsdl '.$this->wsdlFile);
                        } else {
                                $this->debug( 'getOperations returned false');
                                $this->setError('no operations defined in the WSDL document!');
                        }
                }
        }

Here is the call graph for this function:

soap_client::soap_client ( endpoint,
wsdl = false,
proxyhost = false,
proxyport = false,
proxyusername = false,
proxypassword = false,
timeout = 0,
response_timeout = 30 
)

constructor

Parameters:
mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object)
bool $wsdl optional, set to true if using WSDL
int $portName optional portName in WSDL document
string $proxyhost
string $proxyport
string $proxyusername
string $proxypassword
integer $timeout set the connection timeout
integer $response_timeout set the response timeout public

Definition at line 77 of file class.soapclient.php.

References $endpoint, $proxyhost, $proxypassword, $proxyport, $proxyusername, $response_timeout, $timeout, nusoap_base::debug(), and nusoap_base::setError().

                                                                                                                                                                                {
                $this->endpoint = $endpoint;
                $this->proxyhost = $proxyhost;
                $this->proxyport = $proxyport;
                $this->proxyusername = $proxyusername;
                $this->proxypassword = $proxypassword;
                $this->timeout = $timeout;
                $this->response_timeout = $response_timeout;

                // make values
                if($wsdl){
                        $this->endpointType = 'wsdl';
                        if (is_object($endpoint) && is_a($endpoint, 'wsdl')) {
                                $this->wsdl = $endpoint;
                                $this->endpoint = $this->wsdl->wsdl;
                                $this->wsdlFile = $this->endpoint;
                                $this->debug('existing wsdl instance created from ' . $this->endpoint);
                        } else {
                                $this->wsdlFile = $this->endpoint;
                                
                                // instantiate wsdl object and parse wsdl file
                                $this->debug('instantiating wsdl class with doc: '.$endpoint);
                                $this->wsdl =& new wsdl($this->wsdlFile,$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout);
                        }
                        $this->debug("wsdl debug...\n".$this->wsdl->debug_str);
                        $this->wsdl->debug_str = '';
                        // catch errors
                        if($errstr = $this->wsdl->getError()){
                                $this->debug('got wsdl error: '.$errstr);
                                $this->setError('wsdl error: '.$errstr);
                        } elseif($this->operations = $this->wsdl->getOperations()){
                                $this->debug( 'got '.count($this->operations).' operations from wsdl '.$this->wsdlFile);
                        } else {
                                $this->debug( 'getOperations returned false');
                                $this->setError('no operations defined in the WSDL document!');
                        }
                }
        }

Here is the call graph for this function:

soap_client::useHTTPPersistentConnection (  ) 

use HTTP persistent connections if possible

public

Definition at line 5449 of file nusoap.php.

                                              {
                $this->persistentConnection = true;
        }

soap_client::useHTTPPersistentConnection (  ) 

use HTTP persistent connections if possible

public

Definition at line 5447 of file nusoap.php.

                                              {
                $this->persistentConnection = true;
        }

soap_client::useHTTPPersistentConnection (  ) 

use HTTP persistent connections if possible

public

Definition at line 504 of file class.soapclient.php.

                                              {
                $this->persistentConnection = true;
        }


Field Documentation

soap_client::$authtype = ''

Definition at line 4972 of file nusoap.php.

Referenced by setCredentials().

soap_client::$decode_utf8 = true

Definition at line 4993 of file nusoap.php.

soap_client::$defaultRpcParams = false

Definition at line 4988 of file nusoap.php.

soap_client::$document = ''

Definition at line 4975 of file nusoap.php.

soap_client::$endpoint

Definition at line 4976 of file nusoap.php.

Referenced by soap_client().

soap_client::$endpointType = ''

Definition at line 4986 of file nusoap.php.

soap_client::$error_str = false

Reimplemented from nusoap_base.

Definition at line 4977 of file nusoap.php.

soap_client::$fault

Definition at line 5004 of file nusoap.php.

soap_client::$faultcode

Definition at line 5004 of file nusoap.php.

soap_client::$faultdetail

Definition at line 5004 of file nusoap.php.

soap_client::$faultstring

Definition at line 5004 of file nusoap.php.

soap_client::$http_encoding = false

Definition at line 4983 of file nusoap.php.

soap_client::$password = ''

Definition at line 4971 of file nusoap.php.

Referenced by setCredentials().

soap_client::$persistentConnection = false

Definition at line 4987 of file nusoap.php.

soap_client::$proxyhost = ''

Definition at line 4978 of file nusoap.php.

Referenced by setHTTPProxy(), and soap_client().

soap_client::$proxypassword = ''

Definition at line 4981 of file nusoap.php.

Referenced by setHTTPProxy(), and soap_client().

soap_client::$proxyport = ''

Definition at line 4979 of file nusoap.php.

Referenced by setHTTPProxy(), and soap_client().

soap_client::$proxyusername = ''

Definition at line 4980 of file nusoap.php.

Referenced by setHTTPProxy(), and soap_client().

soap_client::$request = ''

Definition at line 4989 of file nusoap.php.

soap_client::$requestHeaders = false

Definition at line 4973 of file nusoap.php.

soap_client::$response = ''

Definition at line 4990 of file nusoap.php.

soap_client::$response_timeout = 30

Definition at line 4985 of file nusoap.php.

Referenced by send(), and soap_client().

soap_client::$responseData = ''

Definition at line 4991 of file nusoap.php.

soap_client::$responseHeaders = ''

Definition at line 4974 of file nusoap.php.

soap_client::$timeout = 0

Definition at line 4984 of file nusoap.php.

Referenced by send(), and soap_client().

soap_client::$username = ''

Definition at line 4970 of file nusoap.php.

Referenced by setCredentials().

soap_client::$xml_encoding = ''

Definition at line 4982 of file nusoap.php.


The documentation for this class was generated from the following files: