|
Support Incident Tracker GIT4.x
|
Inheritance diagram for nusoap_client:
Collaboration diagram for nusoap_client:Public Member Functions | |
| nusoap_client ($endpoint, $wsdl=false, $proxyhost=false, $proxyport=false, $proxyusername=false, $proxypassword=false, $timeout=0, $response_timeout=30) | |
| call ($operation, $params=array(), $namespace='http://tempuri.org', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded') | |
| checkWSDL () | |
| loadWSDL () | |
| getOperationData ($operation) | |
| send ($msg, $soapaction= '', $timeout=0, $response_timeout=30) | |
| parseResponse ($headers, $data) | |
| setCurlOption ($option, $value) | |
| setEndpoint ($endpoint) | |
| setHeaders ($headers) | |
| getHeaders () | |
| getHeader () | |
| setHTTPProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '') | |
| setCredentials ($username, $password, $authtype= 'basic', $certRequest=array()) | |
| setHTTPEncoding ($enc='gzip, deflate') | |
| setUseCURL ($use) | |
| useHTTPPersistentConnection () | |
| getDefaultRpcParams () | |
| setDefaultRpcParams ($rpcParams) | |
| getProxy () | |
| _getProxyClassCode ($r) | |
| getProxyClassCode () | |
| getHTTPBody ($soapmsg) | |
| getHTTPContentType () | |
| getHTTPContentTypeCharset () | |
| decodeUTF8 ($bool) | |
| setCookie ($name, $value) | |
| getCookies () | |
| checkCookies () | |
| UpdateCookies ($cookies) | |
| nusoap_client ($endpoint, $wsdl=false, $proxyhost=false, $proxyport=false, $proxyusername=false, $proxypassword=false, $timeout=0, $response_timeout=30) | |
| call ($operation, $params=array(), $namespace='http://tempuri.org', $soapAction='', $headers=false, $rpcParams=null, $style='rpc', $use='encoded') | |
| checkWSDL () | |
| loadWSDL () | |
| getOperationData ($operation) | |
| send ($msg, $soapaction= '', $timeout=0, $response_timeout=30) | |
| parseResponse ($headers, $data) | |
| setCurlOption ($option, $value) | |
| setEndpoint ($endpoint) | |
| setHeaders ($headers) | |
| getHeaders () | |
| getHeader () | |
| setHTTPProxy ($proxyhost, $proxyport, $proxyusername= '', $proxypassword= '') | |
| setCredentials ($username, $password, $authtype= 'basic', $certRequest=array()) | |
| setHTTPEncoding ($enc='gzip, deflate') | |
| setUseCURL ($use) | |
| useHTTPPersistentConnection () | |
| getDefaultRpcParams () | |
| setDefaultRpcParams ($rpcParams) | |
| getProxy () | |
| _getProxyClassCode ($r) | |
| getProxyClassCode () | |
| getHTTPBody ($soapmsg) | |
| getHTTPContentType () | |
| getHTTPContentTypeCharset () | |
| decodeUTF8 ($bool) | |
| setCookie ($name, $value) | |
| getCookies () | |
| checkCookies () | |
| UpdateCookies ($cookies) | |
Data Fields | |
| $username = '' | |
| $password = '' | |
| $authtype = '' | |
| $certRequest = array() | |
| $requestHeaders = false | |
| $responseHeaders = '' | |
| $responseHeader = NULL | |
| $document = '' | |
| $endpoint | |
| $forceEndpoint = '' | |
| $proxyhost = '' | |
| $proxyport = '' | |
| $proxyusername = '' | |
| $proxypassword = '' | |
| $xml_encoding = '' | |
| $http_encoding = false | |
| $timeout = 0 | |
| $response_timeout = 30 | |
| $endpointType = '' | |
| $persistentConnection = false | |
| $defaultRpcParams = false | |
| $request = '' | |
| $response = '' | |
| $responseData = '' | |
| $cookies = array() | |
| $decode_utf8 = true | |
| $operations = array() | |
| $curl_options = array() | |
| $bindingType = '' | |
| $use_curl = false | |
| $fault | |
| $faultcode | |
| $faultstring | |
| $faultdetail | |
[nu]soapclient higher level class for easy usage.
usage:
// instantiate client with server info $soapclient = new nusoap_client( string path [ ,mixed wsdl] );
// call method, get results echo $soapclient->call( string methodname [ ,array parameters] );
// bye bye client unset($soapclient);
public
[nu]soapclient higher level class for easy usage.
usage:
// instantiate client with server info $soapclient = new nusoap_client( string path [ ,mixed wsdl] );
// call method, get results echo $soapclient->call( string methodname [ ,array parameters] );
// bye bye client unset($soapclient);
public
Definition at line 26 of file class.soapclient.php.
| _getProxyClassCode | ( | $ | r | ) |
dynamically creates proxy class code
Definition at line 735 of file class.soapclient.php.
References $type, nusoap_base::appendDebug(), nusoap_base::debug(), nusoap_base::getError(), loadWSDL(), nusoap_base::setError(), and nusoap_base::varDump().
Referenced by getProxy(), and getProxyClassCode().
{
$this->debug("in getProxy endpointType=$this->endpointType");
$this->appendDebug("wsdl=" . $this->varDump($this->wsdl));
if ($this->endpointType != 'wsdl') {
$evalStr = 'A proxy can only be created for a WSDL client';
$this->setError($evalStr);
$evalStr = "echo \"$evalStr\";";
return $evalStr;
}
if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) {
$this->loadWSDL();
if ($this->getError()) {
return "echo \"" . $this->getError() . "\";";
}
}
$evalStr = '';
foreach ($this->operations as $operation => $opData) {
if ($operation != '') {
// create param string and param comment string
if (sizeof($opData['input']['parts']) > 0) {
$paramStr = '';
$paramArrayStr = '';
$paramCommentStr = '';
foreach ($opData['input']['parts'] as $name => $type) {
$paramStr .= "\$$name, ";
$paramArrayStr .= "'$name' => \$$name, ";
$paramCommentStr .= "$type \$$name, ";
}
$paramStr = substr($paramStr, 0, strlen($paramStr)-2);
$paramArrayStr = substr($paramArrayStr, 0, strlen($paramArrayStr)-2);
$paramCommentStr = substr($paramCommentStr, 0, strlen($paramCommentStr)-2);
} else {
$paramStr = '';
$paramArrayStr = '';
$paramCommentStr = 'void';
}
$opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
$evalStr .= "// $paramCommentStr
function " . str_replace('.', '__', $operation) . "($paramStr) {
\$params = array($paramArrayStr);
return \$this->call('$operation', \$params, '".$opData['namespace']."', '".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
}
";
unset($paramStr);
unset($paramCommentStr);
}
}
$evalStr = 'class nusoap_proxy_'.$r.' extends nusoap_client {
'.$evalStr.'
}';
return $evalStr;
}
| _getProxyClassCode | ( | $ | r | ) |
dynamically creates proxy class code
Definition at line 7751 of file nusoap.php.
References $type, nusoap_base::appendDebug(), nusoap_base::debug(), nusoap_base::getError(), loadWSDL(), nusoap_base::setError(), and nusoap_base::varDump().
{
$this->debug("in getProxy endpointType=$this->endpointType");
$this->appendDebug("wsdl=" . $this->varDump($this->wsdl));
if ($this->endpointType != 'wsdl') {
$evalStr = 'A proxy can only be created for a WSDL client';
$this->setError($evalStr);
$evalStr = "echo \"$evalStr\";";
return $evalStr;
}
if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) {
$this->loadWSDL();
if ($this->getError()) {
return "echo \"" . $this->getError() . "\";";
}
}
$evalStr = '';
foreach ($this->operations as $operation => $opData) {
if ($operation != '') {
// create param string and param comment string
if (sizeof($opData['input']['parts']) > 0) {
$paramStr = '';
$paramArrayStr = '';
$paramCommentStr = '';
foreach ($opData['input']['parts'] as $name => $type) {
$paramStr .= "\$$name, ";
$paramArrayStr .= "'$name' => \$$name, ";
$paramCommentStr .= "$type \$$name, ";
}
$paramStr = substr($paramStr, 0, strlen($paramStr)-2);
$paramArrayStr = substr($paramArrayStr, 0, strlen($paramArrayStr)-2);
$paramCommentStr = substr($paramCommentStr, 0, strlen($paramCommentStr)-2);
} else {
$paramStr = '';
$paramArrayStr = '';
$paramCommentStr = 'void';
}
$opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace'];
$evalStr .= "// $paramCommentStr
function " . str_replace('.', '__', $operation) . "($paramStr) {
\$params = array($paramArrayStr);
return \$this->call('$operation', \$params, '".$opData['namespace']."', '".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."');
}
";
unset($paramStr);
unset($paramCommentStr);
}
}
$evalStr = 'class nusoap_proxy_'.$r.' extends nusoap_client {
'.$evalStr.'
}';
return $evalStr;
}
| call | ( | $ | operation, |
| $ | params = array(), |
||
| $ | namespace = 'http://tempuri.org', |
||
| $ | soapAction = '', |
||
| $ | headers = false, |
||
| $ | rpcParams = null, |
||
| $ | style = 'rpc', |
||
| $ | use = 'encoded' |
||
| ) |
calls method, returns PHP native type
| string | $operation | SOAP server URL or path |
| mixed | $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) |
| mixed | $headers | optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array |
| 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) |
Definition at line 155 of file class.soapclient.php.
References $return, nusoap_base::$usedNamespaces, nusoap_base::appendDebug(), nusoap_base::clearDebug(), nusoap_base::debug(), elseif, nusoap_base::getDebug(), nusoap_base::getError(), getHTTPBody(), getOperationData(), nusoap_base::getPrefixFromNamespace(), loadWSDL(), send(), nusoap_base::serialize_val(), nusoap_base::serializeEnvelope(), wsdl::serializeRPCParameters(), nusoap_base::setError(), and nusoap_base::varDump().
://tempuri.org',$soapAction='',$headers=false,$rpcParams=null,$style='rpc',$use='encoded'){ $this->operation = $operation; $this->fault = false; $this->setError(''); $this->request = ''; $this->response = ''; $this->responseData = ''; $this->faultstring = ''; $this->faultcode = ''; $this->opData = array(); $this->debug("call: operation=$operation, namespace=$namespace, soapAction=$soapAction, rpcParams=$rpcParams, style=$style, use=$use, endpointType=$this->endpointType"); $this->appendDebug('params=' . $this->varDump($params)); $this->appendDebug('headers=' . $this->varDump($headers)); if ($headers) { $this->requestHeaders = $headers; } if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { $this->loadWSDL(); if ($this->getError()) return false; } // serialize parameters if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){ // use WSDL for operation $this->opData = $opData; $this->debug("found operation"); $this->appendDebug('opData=' . $this->varDump($opData)); if (isset($opData['soapAction'])) { $soapAction = $opData['soapAction']; } if (! $this->forceEndpoint) { $this->endpoint = $opData['endpoint']; } else { $this->endpoint = $this->forceEndpoint; } $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] : $namespace; $style = $opData['style']; $use = $opData['input']['use']; // add ns to ns array if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){ $nsPrefix = 'ns' . rand(1000, 9999); $this->wsdl->namespaces[$nsPrefix] = $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,$this->bindingType); } else { $this->debug('params must be array or string'); $this->setError('params must be array or string'); return false; } $usedNamespaces = $this->wsdl->usedNamespaces; if (isset($opData['input']['encodingStyle'])) { $encodingStyle = $opData['input']['encodingStyle']; } else { $encodingStyle = ''; } $this->appendDebug($this->wsdl->getDebug()); $this->wsdl->clearDebug(); 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->appendDebug($this->wsdl->getDebug()); $this->wsdl->clearDebug(); $this->setError( 'operation '.$operation.' not present.'); $this->debug("operation '$operation' not present."); return false; } else { // no WSDL //$this->namespaces['ns1'] = $namespace; $nsPrefix = 'ns' . rand(1000, 9999); // 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(); if ($use == 'encoded') { $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; } else { $encodingStyle = ''; } } // wrap RPC calls with method element if ($style == 'rpc') { if ($use == 'literal') { $this->debug("wrapping RPC request with literal method element"); if ($namespace) { // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . $payload . "</$nsPrefix:$operation>"; } else { $payload = "<$operation>" . $payload . "</$operation>"; } } else { $this->debug("wrapping RPC request with encoded method element"); if ($namespace) { $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . $payload . "</$nsPrefix:$operation>"; } else { $payload = "<$operation>" . $payload . "</$operation>"; } } } // serialize envelope $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use,$encodingStyle); $this->debug("endpoint=$this->endpoint, soapAction=$soapAction, namespace=$namespace, style=$style, use=$use, encodingStyle=$encodingStyle"); $this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . 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)); $this->appendDebug('return=' . $this->varDump($return)); // 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; } elseif ($style == 'document') { // NOTE: if the response is defined to have multiple parts (i.e. unwrapped), // we are only going to return the first part here...sorry about that return $return; } else { // array of return values if(is_array($return)){ // multiple 'out' parameters, which we return wrapped up // in the array if(sizeof($return) > 1){ return $return; } // single 'out' parameter (normally the return value) $return = array_shift($return); $this->debug('return shifted value: '); $this->appendDebug($this->varDump($return)); return $return; // nothing returned (ie, echoVoid) } else { return ""; } } } }
| call | ( | $ | operation, |
| $ | params = array(), |
||
| $ | namespace = 'http://tempuri.org', |
||
| $ | soapAction = '', |
||
| $ | headers = false, |
||
| $ | rpcParams = null, |
||
| $ | style = 'rpc', |
||
| $ | use = 'encoded' |
||
| ) |
calls method, returns PHP native type
| string | $operation | SOAP server URL or path |
| mixed | $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) |
| mixed | $headers | optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array |
| 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) |
Definition at line 7171 of file nusoap.php.
References $return, nusoap_base::$usedNamespaces, nusoap_base::appendDebug(), nusoap_base::clearDebug(), nusoap_base::debug(), elseif, nusoap_base::getDebug(), nusoap_base::getError(), getHTTPBody(), getOperationData(), nusoap_base::getPrefixFromNamespace(), loadWSDL(), send(), nusoap_base::serialize_val(), nusoap_base::serializeEnvelope(), wsdl::serializeRPCParameters(), nusoap_base::setError(), and nusoap_base::varDump().
://tempuri.org',$soapAction='',$headers=false,$rpcParams=null,$style='rpc',$use='encoded'){ $this->operation = $operation; $this->fault = false; $this->setError(''); $this->request = ''; $this->response = ''; $this->responseData = ''; $this->faultstring = ''; $this->faultcode = ''; $this->opData = array(); $this->debug("call: operation=$operation, namespace=$namespace, soapAction=$soapAction, rpcParams=$rpcParams, style=$style, use=$use, endpointType=$this->endpointType"); $this->appendDebug('params=' . $this->varDump($params)); $this->appendDebug('headers=' . $this->varDump($headers)); if ($headers) { $this->requestHeaders = $headers; } if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { $this->loadWSDL(); if ($this->getError()) return false; } // serialize parameters if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){ // use WSDL for operation $this->opData = $opData; $this->debug("found operation"); $this->appendDebug('opData=' . $this->varDump($opData)); if (isset($opData['soapAction'])) { $soapAction = $opData['soapAction']; } if (! $this->forceEndpoint) { $this->endpoint = $opData['endpoint']; } else { $this->endpoint = $this->forceEndpoint; } $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] : $namespace; $style = $opData['style']; $use = $opData['input']['use']; // add ns to ns array if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){ $nsPrefix = 'ns' . rand(1000, 9999); $this->wsdl->namespaces[$nsPrefix] = $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,$this->bindingType); } else { $this->debug('params must be array or string'); $this->setError('params must be array or string'); return false; } $usedNamespaces = $this->wsdl->usedNamespaces; if (isset($opData['input']['encodingStyle'])) { $encodingStyle = $opData['input']['encodingStyle']; } else { $encodingStyle = ''; } $this->appendDebug($this->wsdl->getDebug()); $this->wsdl->clearDebug(); 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->appendDebug($this->wsdl->getDebug()); $this->wsdl->clearDebug(); $this->setError( 'operation '.$operation.' not present.'); $this->debug("operation '$operation' not present."); return false; } else { // no WSDL //$this->namespaces['ns1'] = $namespace; $nsPrefix = 'ns' . rand(1000, 9999); // 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(); if ($use == 'encoded') { $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; } else { $encodingStyle = ''; } } // wrap RPC calls with method element if ($style == 'rpc') { if ($use == 'literal') { $this->debug("wrapping RPC request with literal method element"); if ($namespace) { // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . $payload . "</$nsPrefix:$operation>"; } else { $payload = "<$operation>" . $payload . "</$operation>"; } } else { $this->debug("wrapping RPC request with encoded method element"); if ($namespace) { $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . $payload . "</$nsPrefix:$operation>"; } else { $payload = "<$operation>" . $payload . "</$operation>"; } } } // serialize envelope $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use,$encodingStyle); $this->debug("endpoint=$this->endpoint, soapAction=$soapAction, namespace=$namespace, style=$style, use=$use, encodingStyle=$encodingStyle"); $this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . 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)); $this->appendDebug('return=' . $this->varDump($return)); // 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; } elseif ($style == 'document') { // NOTE: if the response is defined to have multiple parts (i.e. unwrapped), // we are only going to return the first part here...sorry about that return $return; } else { // array of return values if(is_array($return)){ // multiple 'out' parameters, which we return wrapped up // in the array if(sizeof($return) > 1){ return $return; } // single 'out' parameter (normally the return value) $return = array_shift($return); $this->debug('return shifted value: '); $this->appendDebug($this->varDump($return)); return $return; // nothing returned (ie, echoVoid) } else { return ""; } } } }
| checkCookies | ( | ) |
checks all Cookies and delete those which are expired
Definition at line 878 of file class.soapclient.php.
References nusoap_base::debug().
Referenced by send().
{
if (sizeof($this->cookies) == 0) {
return true;
}
$this->debug('checkCookie: check ' . sizeof($this->cookies) . ' cookies');
$curr_cookies = $this->cookies;
$this->cookies = array();
foreach ($curr_cookies as $cookie) {
if (! is_array($cookie)) {
$this->debug('Remove cookie that is not an array');
continue;
}
if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) {
if (strtotime($cookie['expires']) > time()) {
$this->cookies[] = $cookie;
} else {
$this->debug('Remove expired cookie ' . $cookie['name']);
}
} else {
$this->cookies[] = $cookie;
}
}
$this->debug('checkCookie: '.sizeof($this->cookies).' cookies left in array');
return true;
}
| checkCookies | ( | ) |
checks all Cookies and delete those which are expired
Definition at line 7894 of file nusoap.php.
References nusoap_base::debug().
{
if (sizeof($this->cookies) == 0) {
return true;
}
$this->debug('checkCookie: check ' . sizeof($this->cookies) . ' cookies');
$curr_cookies = $this->cookies;
$this->cookies = array();
foreach ($curr_cookies as $cookie) {
if (! is_array($cookie)) {
$this->debug('Remove cookie that is not an array');
continue;
}
if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) {
if (strtotime($cookie['expires']) > time()) {
$this->cookies[] = $cookie;
} else {
$this->debug('Remove expired cookie ' . $cookie['name']);
}
} else {
$this->cookies[] = $cookie;
}
}
$this->debug('checkCookie: '.sizeof($this->cookies).' cookies left in array');
return true;
}
| checkWSDL | ( | ) |
check WSDL passed as an instance or pulled from an endpoint
private
Definition at line 7353 of file nusoap.php.
References nusoap_base::appendDebug(), nusoap_base::clearDebug(), count, nusoap_base::debug(), elseif, nusoap_base::getDebug(), nusoap_base::getError(), wsdl::getOperations(), and nusoap_base::setError().
{
$this->appendDebug($this->wsdl->getDebug());
$this->wsdl->clearDebug();
$this->debug('checkWSDL');
// catch errors
if ($errstr = $this->wsdl->getError()) {
$this->debug('got wsdl error: '.$errstr);
$this->setError('wsdl error: '.$errstr);
} elseif ($this->operations = $this->wsdl->getOperations('soap')) {
$this->bindingType = 'soap';
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
} elseif ($this->operations = $this->wsdl->getOperations('soap12')) {
$this->bindingType = 'soap12';
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
$this->debug('**************** WARNING: SOAP 1.2 BINDING *****************');
} else {
$this->debug('getOperations returned false');
$this->setError('no operations defined in the WSDL document!');
}
}
| checkWSDL | ( | ) |
check WSDL passed as an instance or pulled from an endpoint
private
Definition at line 337 of file class.soapclient.php.
References nusoap_base::appendDebug(), nusoap_base::clearDebug(), count, nusoap_base::debug(), elseif, nusoap_base::getDebug(), nusoap_base::getError(), wsdl::getOperations(), and nusoap_base::setError().
Referenced by loadWSDL(), and nusoap_client().
{
$this->appendDebug($this->wsdl->getDebug());
$this->wsdl->clearDebug();
$this->debug('checkWSDL');
// catch errors
if ($errstr = $this->wsdl->getError()) {
$this->debug('got wsdl error: '.$errstr);
$this->setError('wsdl error: '.$errstr);
} elseif ($this->operations = $this->wsdl->getOperations('soap')) {
$this->bindingType = 'soap';
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
} elseif ($this->operations = $this->wsdl->getOperations('soap12')) {
$this->bindingType = 'soap12';
$this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType);
$this->debug('**************** WARNING: SOAP 1.2 BINDING *****************');
} else {
$this->debug('getOperations returned false');
$this->setError('no operations defined in the WSDL document!');
}
}
| decodeUTF8 | ( | $ | bool | ) |
Definition at line 841 of file class.soapclient.php.
{
$this->decode_utf8 = $bool;
return true;
}
| decodeUTF8 | ( | $ | bool | ) |
Definition at line 7857 of file nusoap.php.
{
$this->decode_utf8 = $bool;
return true;
}
| getCookies | ( | ) |
gets all Cookies
Definition at line 7884 of file nusoap.php.
{
return $this->cookies;
}
| getCookies | ( | ) |
gets all Cookies
Definition at line 868 of file class.soapclient.php.
{
return $this->cookies;
}
| 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.
Definition at line 661 of file class.soapclient.php.
{
return $this->defaultRpcParams;
}
| 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.
Definition at line 7677 of file nusoap.php.
{
return $this->defaultRpcParams;
}
| getHeader | ( | ) |
get the SOAP response Header (parsed)
Definition at line 7596 of file nusoap.php.
{
return $this->responseHeader;
}
| getHeader | ( | ) |
get the SOAP response Header (parsed)
Definition at line 580 of file class.soapclient.php.
{
return $this->responseHeader;
}
| getHeaders | ( | ) |
get the SOAP response headers (namespace resolution incomplete)
Definition at line 570 of file class.soapclient.php.
{
return $this->responseHeaders;
}
| getHeaders | ( | ) |
get the SOAP response headers (namespace resolution incomplete)
Definition at line 7586 of file nusoap.php.
{
return $this->responseHeaders;
}
| getHTTPBody | ( | $ | soapmsg | ) |
gets the HTTP body for the current request.
| string | $soapmsg | The SOAP payload |
Reimplemented in nusoap_client_mime.
Definition at line 806 of file class.soapclient.php.
Referenced by call().
{
return $soapmsg;
}
| getHTTPBody | ( | $ | soapmsg | ) |
gets the HTTP body for the current request.
| string | $soapmsg | The SOAP payload |
Reimplemented in nusoap_client_mime.
Definition at line 7822 of file nusoap.php.
{
return $soapmsg;
}
| getHTTPContentType | ( | ) |
gets the HTTP content type for the current request.
Note: getHTTPBody must be called before this.
Reimplemented in nusoap_client_mime.
Definition at line 818 of file class.soapclient.php.
Referenced by send().
{
return 'text/xml';
}
| getHTTPContentType | ( | ) |
gets the HTTP content type for the current request.
Note: getHTTPBody must be called before this.
Reimplemented in nusoap_client_mime.
Definition at line 7834 of file nusoap.php.
{
return 'text/xml';
}
| 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.
Reimplemented in nusoap_client_mime.
Definition at line 7847 of file nusoap.php.
{
return $this->soap_defencoding;
}
| 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.
Reimplemented in nusoap_client_mime.
Definition at line 831 of file class.soapclient.php.
Referenced by send().
{
return $this->soap_defencoding;
}
| getOperationData | ( | $ | operation | ) |
get available data pertaining to an operation
| string | $operation | operation name |
Definition at line 7394 of file nusoap.php.
References nusoap_base::debug(), nusoap_base::getError(), and loadWSDL().
| getOperationData | ( | $ | operation | ) |
get available data pertaining to an operation
| string | $operation | operation name |
Definition at line 378 of file class.soapclient.php.
References nusoap_base::debug(), nusoap_base::getError(), and loadWSDL().
Referenced by call().
| getProxy | ( | ) |
dynamically creates an instance of a proxy class, allowing user to directly call methods from wsdl
Definition at line 687 of file class.soapclient.php.
References _getProxyClassCode(), nusoap_base::debug(), and nusoap_base::getError().
{
$r = rand();
$evalStr = $this->_getProxyClassCode($r);
//$this->debug("proxy class: $evalStr");
if ($this->getError()) {
$this->debug("Error from _getProxyClassCode, so return NULL");
return null;
}
// eval the class
eval($evalStr);
// instantiate proxy object
eval("\$proxy = new nusoap_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->soap_defencoding = $this->soap_defencoding;
$proxy->username = $this->username;
$proxy->password = $this->password;
$proxy->authtype = $this->authtype;
$proxy->certRequest = $this->certRequest;
$proxy->requestHeaders = $this->requestHeaders;
$proxy->endpoint = $this->endpoint;
$proxy->forceEndpoint = $this->forceEndpoint;
$proxy->proxyhost = $this->proxyhost;
$proxy->proxyport = $this->proxyport;
$proxy->proxyusername = $this->proxyusername;
$proxy->proxypassword = $this->proxypassword;
$proxy->http_encoding = $this->http_encoding;
$proxy->timeout = $this->timeout;
$proxy->response_timeout = $this->response_timeout;
$proxy->persistentConnection = &$this->persistentConnection;
$proxy->decode_utf8 = $this->decode_utf8;
$proxy->curl_options = $this->curl_options;
$proxy->bindingType = $this->bindingType;
$proxy->use_curl = $this->use_curl;
return $proxy;
}
| getProxy | ( | ) |
dynamically creates an instance of a proxy class, allowing user to directly call methods from wsdl
Definition at line 7703 of file nusoap.php.
References _getProxyClassCode(), nusoap_base::debug(), and nusoap_base::getError().
{
$r = rand();
$evalStr = $this->_getProxyClassCode($r);
//$this->debug("proxy class: $evalStr");
if ($this->getError()) {
$this->debug("Error from _getProxyClassCode, so return NULL");
return null;
}
// eval the class
eval($evalStr);
// instantiate proxy object
eval("\$proxy = new nusoap_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->soap_defencoding = $this->soap_defencoding;
$proxy->username = $this->username;
$proxy->password = $this->password;
$proxy->authtype = $this->authtype;
$proxy->certRequest = $this->certRequest;
$proxy->requestHeaders = $this->requestHeaders;
$proxy->endpoint = $this->endpoint;
$proxy->forceEndpoint = $this->forceEndpoint;
$proxy->proxyhost = $this->proxyhost;
$proxy->proxyport = $this->proxyport;
$proxy->proxyusername = $this->proxyusername;
$proxy->proxypassword = $this->proxypassword;
$proxy->http_encoding = $this->http_encoding;
$proxy->timeout = $this->timeout;
$proxy->response_timeout = $this->response_timeout;
$proxy->persistentConnection = &$this->persistentConnection;
$proxy->decode_utf8 = $this->decode_utf8;
$proxy->curl_options = $this->curl_options;
$proxy->bindingType = $this->bindingType;
$proxy->use_curl = $this->use_curl;
return $proxy;
}
| getProxyClassCode | ( | ) |
dynamically creates proxy class code
Definition at line 794 of file class.soapclient.php.
References _getProxyClassCode().
{
$r = rand();
return $this->_getProxyClassCode($r);
}
| getProxyClassCode | ( | ) |
dynamically creates proxy class code
Definition at line 7810 of file nusoap.php.
References _getProxyClassCode().
{
$r = rand();
return $this->_getProxyClassCode($r);
}
| loadWSDL | ( | ) |
instantiate wsdl object and parse wsdl file
public
Definition at line 7379 of file nusoap.php.
References checkWSDL(), nusoap_base::debug(), wsdl::fetchWSDL(), and wsdl::setCredentials().
{
$this->debug('instantiating wsdl class with doc: '.$this->wsdlFile);
$this->wsdl =& new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl);
$this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest);
$this->wsdl->fetchWSDL($this->wsdlFile);
$this->checkWSDL();
}
| loadWSDL | ( | ) |
instantiate wsdl object and parse wsdl file
public
Definition at line 363 of file class.soapclient.php.
References checkWSDL(), nusoap_base::debug(), wsdl::fetchWSDL(), and wsdl::setCredentials().
Referenced by _getProxyClassCode(), call(), and getOperationData().
{
$this->debug('instantiating wsdl class with doc: '.$this->wsdlFile);
$this->wsdl =& new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl);
$this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest);
$this->wsdl->fetchWSDL($this->wsdlFile);
$this->checkWSDL();
}
| nusoap_client | ( | $ | endpoint, |
| $ | wsdl = false, |
||
| $ | proxyhost = false, |
||
| $ | proxyport = false, |
||
| $ | proxyusername = false, |
||
| $ | proxypassword = false, |
||
| $ | timeout = 0, |
||
| $ | response_timeout = 30 |
||
| ) |
constructor
| 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 97 of file class.soapclient.php.
References $endpoint, $proxyhost, $proxypassword, $proxyport, $proxyusername, $response_timeout, $timeout, nusoap_base::appendDebug(), checkWSDL(), nusoap_base::debug(), nusoap_base::nusoap_base(), nusoap_base::varDump(), and wsdl::wsdl().
{
parent::nusoap_base();
$this->endpoint = $endpoint;
$this->proxyhost = $proxyhost;
$this->proxyport = $proxyport;
$this->proxyusername = $proxyusername;
$this->proxypassword = $proxypassword;
$this->timeout = $timeout;
$this->response_timeout = $response_timeout;
$this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout");
$this->appendDebug('endpoint=' . $this->varDump($endpoint));
// make values
if($wsdl){
if (is_object($endpoint) && (get_class($endpoint) == 'wsdl')) {
$this->wsdl = $endpoint;
$this->endpoint = $this->wsdl->wsdl;
$this->wsdlFile = $this->endpoint;
$this->debug('existing wsdl instance created from ' . $this->endpoint);
$this->checkWSDL();
} else {
$this->wsdlFile = $this->endpoint;
$this->wsdl = null;
$this->debug('will use lazy evaluation of wsdl from ' . $this->endpoint);
}
$this->endpointType = 'wsdl';
} else {
$this->debug("instantiate SOAP with endpoint at $endpoint");
$this->endpointType = 'soap';
}
}
| nusoap_client | ( | $ | endpoint, |
| $ | wsdl = false, |
||
| $ | proxyhost = false, |
||
| $ | proxyport = false, |
||
| $ | proxyusername = false, |
||
| $ | proxypassword = false, |
||
| $ | timeout = 0, |
||
| $ | response_timeout = 30 |
||
| ) |
constructor
| 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 7113 of file nusoap.php.
References $endpoint, $proxyhost, $proxypassword, $proxyport, $proxyusername, $response_timeout, $timeout, nusoap_base::appendDebug(), checkWSDL(), nusoap_base::debug(), nusoap_base::nusoap_base(), nusoap_base::varDump(), and wsdl::wsdl().
{
parent::nusoap_base();
$this->endpoint = $endpoint;
$this->proxyhost = $proxyhost;
$this->proxyport = $proxyport;
$this->proxyusername = $proxyusername;
$this->proxypassword = $proxypassword;
$this->timeout = $timeout;
$this->response_timeout = $response_timeout;
$this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout");
$this->appendDebug('endpoint=' . $this->varDump($endpoint));
// make values
if($wsdl){
if (is_object($endpoint) && (get_class($endpoint) == 'wsdl')) {
$this->wsdl = $endpoint;
$this->endpoint = $this->wsdl->wsdl;
$this->wsdlFile = $this->endpoint;
$this->debug('existing wsdl instance created from ' . $this->endpoint);
$this->checkWSDL();
} else {
$this->wsdlFile = $this->endpoint;
$this->wsdl = null;
$this->debug('will use lazy evaluation of wsdl from ' . $this->endpoint);
}
$this->endpointType = 'wsdl';
} else {
$this->debug("instantiate SOAP with endpoint at $endpoint");
$this->endpointType = 'soap';
}
}
| parseResponse | ( | $ | headers, |
| $ | data | ||
| ) |
processes SOAP message returned from server
| array | $headers | The HTTP headers |
| string | $data | unprocessed response data from server |
Reimplemented in nusoap_client_mime.
Definition at line 483 of file class.soapclient.php.
References $data, $return, nusoap_base::appendDebug(), nusoap_base::debug(), nusoap_base::setError(), and nusoap_base::varDump().
Referenced by send().
{
$this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:');
$this->appendDebug($this->varDump($headers));
if (!strstr($headers['content-type'], 'text/xml')) {
$this->setError('Response not of type text/xml: ' . $headers['content-type']);
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 for HTTP 1.0 or ISO-8859-1 for HTTP 1.1
$this->xml_encoding = 'ISO-8859-1';
}
$this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser');
$parser = new nusoap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
// add parser debug data to our debug
$this->appendDebug($parser->getDebug());
// 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 SOAP headers
$this->responseHeader = $parser->get_soapheader();
// get decoded message
$return = $parser->get_soapbody();
// add document for doclit support
$this->document = $parser->document;
// destroy the parser object
unset($parser);
// return decode message
return $return;
}
}
| parseResponse | ( | $ | headers, |
| $ | data | ||
| ) |
processes SOAP message returned from server
| array | $headers | The HTTP headers |
| string | $data | unprocessed response data from server |
Reimplemented in nusoap_client_mime.
Definition at line 7499 of file nusoap.php.
References $data, $return, nusoap_base::appendDebug(), nusoap_base::debug(), nusoap_base::setError(), and nusoap_base::varDump().
{
$this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:');
$this->appendDebug($this->varDump($headers));
if (!strstr($headers['content-type'], 'text/xml')) {
$this->setError('Response not of type text/xml: ' . $headers['content-type']);
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 for HTTP 1.0 or ISO-8859-1 for HTTP 1.1
$this->xml_encoding = 'ISO-8859-1';
}
$this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser');
$parser = new nusoap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8);
// add parser debug data to our debug
$this->appendDebug($parser->getDebug());
// 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 SOAP headers
$this->responseHeader = $parser->get_soapheader();
// get decoded message
$return = $parser->get_soapbody();
// add document for doclit support
$this->document = $parser->document;
// destroy the parser object
unset($parser);
// return decode message
return $return;
}
}
| 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.
| 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 |
Definition at line 7420 of file nusoap.php.
References $response_timeout, $timeout, nusoap_base::appendDebug(), checkCookies(), nusoap_base::debug(), elseif, nusoap_base::getError(), getHTTPContentType(), getHTTPContentTypeCharset(), parseResponse(), nusoap_base::setError(), and UpdateCookies().
{
$this->checkCookies();
// 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, $this->curl_options, $this->use_curl);
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->authtype != '') {
$http->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest);
}
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,$this->cookies);
} 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
$this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout,$this->cookies);
} else {
$this->setError('no http/s in endpoint url');
}
$this->request = $http->outgoing_payload;
$this->response = $http->incoming_payload;
$this->appendDebug($http->getDebug());
$this->UpdateCookies($http->incoming_cookies);
// save transport object if using persistent connections
if ($this->persistentConnection) {
$http->clearDebug();
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;
}
}
| 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.
| 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 |
Definition at line 404 of file class.soapclient.php.
References $response_timeout, $timeout, nusoap_base::appendDebug(), checkCookies(), nusoap_base::debug(), elseif, nusoap_base::getError(), getHTTPContentType(), getHTTPContentTypeCharset(), parseResponse(), nusoap_base::setError(), and UpdateCookies().
Referenced by call().
{
$this->checkCookies();
// 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, $this->curl_options, $this->use_curl);
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->authtype != '') {
$http->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest);
}
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,$this->cookies);
} 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
$this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout,$this->cookies);
} else {
$this->setError('no http/s in endpoint url');
}
$this->request = $http->outgoing_payload;
$this->response = $http->incoming_payload;
$this->appendDebug($http->getDebug());
$this->UpdateCookies($http->incoming_cookies);
// save transport object if using persistent connections
if ($this->persistentConnection) {
$http->clearDebug();
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;
}
}
| setCookie | ( | $ | name, |
| $ | value | ||
| ) |
adds a new Cookie into $this->cookies array
| string | $name | Cookie Name |
| string | $value | Cookie Value |
Definition at line 854 of file class.soapclient.php.
{
if (strlen($name) == 0) {
return false;
}
$this->cookies[] = array('name' => $name, 'value' => $value);
return true;
}
| setCookie | ( | $ | name, |
| $ | value | ||
| ) |
adds a new Cookie into $this->cookies array
| string | $name | Cookie Name |
| string | $value | Cookie Value |
Definition at line 7870 of file nusoap.php.
{
if (strlen($name) == 0) {
return false;
}
$this->cookies[] = array('name' => $name, 'value' => $value);
return true;
}
| setCredentials | ( | $ | username, |
| $ | password, | ||
| $ | authtype = 'basic', |
||
| $ | certRequest = array() |
||
| ) |
if authenticating, set user credentials here
| string | $username | |
| string | $password | |
| string | $authtype | (basic|digest|certificate|ntlm) |
| array | $certRequest | (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) public |
Definition at line 7625 of file nusoap.php.
References $authtype, $certRequest, $password, $username, nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setCredentials username=$username authtype=$authtype certRequest=");
$this->appendDebug($this->varDump($certRequest));
$this->username = $username;
$this->password = $password;
$this->authtype = $authtype;
$this->certRequest = $certRequest;
}
| setCredentials | ( | $ | username, |
| $ | password, | ||
| $ | authtype = 'basic', |
||
| $ | certRequest = array() |
||
| ) |
if authenticating, set user credentials here
| string | $username | |
| string | $password | |
| string | $authtype | (basic|digest|certificate|ntlm) |
| array | $certRequest | (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) public |
Definition at line 609 of file class.soapclient.php.
References $authtype, $certRequest, $password, $username, nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setCredentials username=$username authtype=$authtype certRequest=");
$this->appendDebug($this->varDump($certRequest));
$this->username = $username;
$this->password = $password;
$this->authtype = $authtype;
$this->certRequest = $certRequest;
}
| setCurlOption | ( | $ | option, |
| $ | value | ||
| ) |
sets user-specified cURL options
| mixed | $option | The cURL option (always integer?) |
| mixed | $value | The cURL option value public |
Definition at line 535 of file class.soapclient.php.
References nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setCurlOption option=$option, value=");
$this->appendDebug($this->varDump($value));
$this->curl_options[$option] = $value;
}
| setCurlOption | ( | $ | option, |
| $ | value | ||
| ) |
sets user-specified cURL options
| mixed | $option | The cURL option (always integer?) |
| mixed | $value | The cURL option value public |
Definition at line 7551 of file nusoap.php.
References nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setCurlOption option=$option, value=");
$this->appendDebug($this->varDump($value));
$this->curl_options[$option] = $value;
}
| 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.
This is no longer used.
| boolean | $rpcParams | public |
Definition at line 7692 of file nusoap.php.
{
$this->defaultRpcParams = $rpcParams;
}
| 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.
This is no longer used.
| boolean | $rpcParams | public |
Definition at line 676 of file class.soapclient.php.
{
$this->defaultRpcParams = $rpcParams;
}
| setEndpoint | ( | $ | endpoint | ) |
sets the SOAP endpoint, which can override WSDL
| string | $endpoint | The endpoint URL to use, or empty string or false to prevent override public |
Definition at line 7563 of file nusoap.php.
References $endpoint, and nusoap_base::debug().
| setEndpoint | ( | $ | endpoint | ) |
sets the SOAP endpoint, which can override WSDL
| string | $endpoint | The endpoint URL to use, or empty string or false to prevent override public |
Definition at line 547 of file class.soapclient.php.
References $endpoint, and nusoap_base::debug().
| setHeaders | ( | $ | headers | ) |
set the SOAP headers
| mixed | $headers | String of XML with SOAP header content, or array of soapval objects for SOAP headers public |
Definition at line 558 of file class.soapclient.php.
References nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setHeaders headers=");
$this->appendDebug($this->varDump($headers));
$this->requestHeaders = $headers;
}
| setHeaders | ( | $ | headers | ) |
set the SOAP headers
| mixed | $headers | String of XML with SOAP header content, or array of soapval objects for SOAP headers public |
Definition at line 7574 of file nusoap.php.
References nusoap_base::appendDebug(), nusoap_base::debug(), and nusoap_base::varDump().
{
$this->debug("setHeaders headers=");
$this->appendDebug($this->varDump($headers));
$this->requestHeaders = $headers;
}
| setHTTPEncoding | ( | $ | enc = 'gzip, |
| deflate' | |||
| ) |
use HTTP encoding
| string | $enc | HTTP encoding public |
Definition at line 624 of file class.soapclient.php.
References nusoap_base::debug().
{
$this->debug("setHTTPEncoding(\"$enc\")");
$this->http_encoding = $enc;
}
| setHTTPEncoding | ( | $ | enc = 'gzip, |
| deflate' | |||
| ) |
use HTTP encoding
| string | $enc | HTTP encoding public |
Definition at line 7640 of file nusoap.php.
References nusoap_base::debug().
{
$this->debug("setHTTPEncoding(\"$enc\")");
$this->http_encoding = $enc;
}
| setHTTPProxy | ( | $ | proxyhost, |
| $ | proxyport, | ||
| $ | proxyusername = '', |
||
| $ | proxypassword = '' |
||
| ) |
set proxy info here
| string | $proxyhost | |
| string | $proxyport | |
| string | $proxyusername | |
| string | $proxypassword | public |
Definition at line 7609 of file nusoap.php.
References $proxyhost, $proxypassword, $proxyport, and $proxyusername.
{
$this->proxyhost = $proxyhost;
$this->proxyport = $proxyport;
$this->proxyusername = $proxyusername;
$this->proxypassword = $proxypassword;
}
| setHTTPProxy | ( | $ | proxyhost, |
| $ | proxyport, | ||
| $ | proxyusername = '', |
||
| $ | proxypassword = '' |
||
| ) |
set proxy info here
| string | $proxyhost | |
| string | $proxyport | |
| string | $proxyusername | |
| string | $proxypassword | public |
Definition at line 593 of file class.soapclient.php.
References $proxyhost, $proxypassword, $proxyport, and $proxyusername.
{
$this->proxyhost = $proxyhost;
$this->proxyport = $proxyport;
$this->proxyusername = $proxyusername;
$this->proxypassword = $proxypassword;
}
| setUseCURL | ( | $ | use | ) |
Set whether to try to use cURL connections if possible
| boolean | $use | Whether to try to use cURL public |
Definition at line 635 of file class.soapclient.php.
References nusoap_base::debug().
{
$this->debug("setUseCURL($use)");
$this->use_curl = $use;
}
| setUseCURL | ( | $ | use | ) |
Set whether to try to use cURL connections if possible
| boolean | $use | Whether to try to use cURL public |
Definition at line 7651 of file nusoap.php.
References nusoap_base::debug().
{
$this->debug("setUseCURL($use)");
$this->use_curl = $use;
}
| UpdateCookies | ( | $ | cookies | ) |
updates the current cookies with a new set
| array | $cookies | new cookies with which to update current ones |
Definition at line 7927 of file nusoap.php.
References $cookies, $domain, $path, count, and nusoap_base::debug().
{
if (sizeof($this->cookies) == 0) {
// no existing cookies: take whatever is new
if (sizeof($cookies) > 0) {
$this->debug('Setting new cookie(s)');
$this->cookies = $cookies;
}
return true;
}
if (sizeof($cookies) == 0) {
// no new cookies: keep what we've got
return true;
}
// merge
foreach ($cookies as $newCookie) {
if (!is_array($newCookie)) {
continue;
}
if ((!isset($newCookie['name'])) || (!isset($newCookie['value']))) {
continue;
}
$newName = $newCookie['name'];
$found = false;
for ($i = 0; $i < count($this->cookies); $i++) {
$cookie = $this->cookies[$i];
if (!is_array($cookie)) {
continue;
}
if (!isset($cookie['name'])) {
continue;
}
if ($newName != $cookie['name']) {
continue;
}
$newDomain = isset($newCookie['domain']) ? $newCookie['domain'] : 'NODOMAIN';
$domain = isset($cookie['domain']) ? $cookie['domain'] : 'NODOMAIN';
if ($newDomain != $domain) {
continue;
}
$newPath = isset($newCookie['path']) ? $newCookie['path'] : 'NOPATH';
$path = isset($cookie['path']) ? $cookie['path'] : 'NOPATH';
if ($newPath != $path) {
continue;
}
$this->cookies[$i] = $newCookie;
$found = true;
$this->debug('Update cookie ' . $newName . '=' . $newCookie['value']);
break;
}
if (! $found) {
$this->debug('Add cookie ' . $newName . '=' . $newCookie['value']);
$this->cookies[] = $newCookie;
}
}
return true;
}
| UpdateCookies | ( | $ | cookies | ) |
updates the current cookies with a new set
| array | $cookies | new cookies with which to update current ones |
Definition at line 911 of file class.soapclient.php.
References $cookies, $domain, $path, count, and nusoap_base::debug().
Referenced by send().
{
if (sizeof($this->cookies) == 0) {
// no existing cookies: take whatever is new
if (sizeof($cookies) > 0) {
$this->debug('Setting new cookie(s)');
$this->cookies = $cookies;
}
return true;
}
if (sizeof($cookies) == 0) {
// no new cookies: keep what we've got
return true;
}
// merge
foreach ($cookies as $newCookie) {
if (!is_array($newCookie)) {
continue;
}
if ((!isset($newCookie['name'])) || (!isset($newCookie['value']))) {
continue;
}
$newName = $newCookie['name'];
$found = false;
for ($i = 0; $i < count($this->cookies); $i++) {
$cookie = $this->cookies[$i];
if (!is_array($cookie)) {
continue;
}
if (!isset($cookie['name'])) {
continue;
}
if ($newName != $cookie['name']) {
continue;
}
$newDomain = isset($newCookie['domain']) ? $newCookie['domain'] : 'NODOMAIN';
$domain = isset($cookie['domain']) ? $cookie['domain'] : 'NODOMAIN';
if ($newDomain != $domain) {
continue;
}
$newPath = isset($newCookie['path']) ? $newCookie['path'] : 'NOPATH';
$path = isset($cookie['path']) ? $cookie['path'] : 'NOPATH';
if ($newPath != $path) {
continue;
}
$this->cookies[$i] = $newCookie;
$found = true;
$this->debug('Update cookie ' . $newName . '=' . $newCookie['value']);
break;
}
if (! $found) {
$this->debug('Add cookie ' . $newName . '=' . $newCookie['value']);
$this->cookies[] = $newCookie;
}
}
return true;
}
| useHTTPPersistentConnection | ( | ) |
use HTTP persistent connections if possible
public
Definition at line 645 of file class.soapclient.php.
References nusoap_base::debug().
{
$this->debug("useHTTPPersistentConnection");
$this->persistentConnection = true;
}
| useHTTPPersistentConnection | ( | ) |
use HTTP persistent connections if possible
public
Definition at line 7661 of file nusoap.php.
References nusoap_base::debug().
{
$this->debug("useHTTPPersistentConnection");
$this->persistentConnection = true;
}
| $authtype = '' |
Definition at line 30 of file class.soapclient.php.
Referenced by setCredentials().
| $bindingType = '' |
Definition at line 56 of file class.soapclient.php.
| $certRequest = array() |
Definition at line 31 of file class.soapclient.php.
Referenced by setCredentials().
| $cookies = array() |
Definition at line 52 of file class.soapclient.php.
Referenced by UpdateCookies().
| $curl_options = array() |
Definition at line 55 of file class.soapclient.php.
| $decode_utf8 = true |
Definition at line 53 of file class.soapclient.php.
| $defaultRpcParams = false |
Definition at line 48 of file class.soapclient.php.
| $document = '' |
Definition at line 35 of file class.soapclient.php.
| $endpoint |
Definition at line 36 of file class.soapclient.php.
Referenced by nusoap_client(), and setEndpoint().
| $endpointType = '' |
Definition at line 46 of file class.soapclient.php.
| $fault |
Definition at line 66 of file class.soapclient.php.
| $faultcode |
Definition at line 71 of file class.soapclient.php.
| $faultdetail |
Definition at line 81 of file class.soapclient.php.
| $faultstring |
Definition at line 76 of file class.soapclient.php.
| $forceEndpoint = '' |
Definition at line 37 of file class.soapclient.php.
| $http_encoding = false |
Definition at line 43 of file class.soapclient.php.
| $operations = array() |
Definition at line 54 of file class.soapclient.php.
| $password = '' |
Definition at line 29 of file class.soapclient.php.
Referenced by setCredentials().
| $persistentConnection = false |
Definition at line 47 of file class.soapclient.php.
| $proxyhost = '' |
Definition at line 38 of file class.soapclient.php.
Referenced by nusoap_client(), and setHTTPProxy().
| $proxypassword = '' |
Definition at line 41 of file class.soapclient.php.
Referenced by nusoap_client(), and setHTTPProxy().
| $proxyport = '' |
Definition at line 39 of file class.soapclient.php.
Referenced by nusoap_client(), and setHTTPProxy().
| $proxyusername = '' |
Definition at line 40 of file class.soapclient.php.
Referenced by nusoap_client(), and setHTTPProxy().
| $request = '' |
Definition at line 49 of file class.soapclient.php.
| $requestHeaders = false |
Definition at line 32 of file class.soapclient.php.
| $response = '' |
Definition at line 50 of file class.soapclient.php.
| $response_timeout = 30 |
Definition at line 45 of file class.soapclient.php.
Referenced by nusoap_client(), and send().
| $responseData = '' |
Definition at line 51 of file class.soapclient.php.
| $responseHeader = NULL |
Definition at line 34 of file class.soapclient.php.
| $responseHeaders = '' |
Definition at line 33 of file class.soapclient.php.
| $timeout = 0 |
Definition at line 44 of file class.soapclient.php.
Referenced by nusoap_client(), and send().
| $use_curl = false |
Definition at line 57 of file class.soapclient.php.
| $username = '' |
Definition at line 28 of file class.soapclient.php.
Referenced by setCredentials().
| $xml_encoding = '' |
Definition at line 42 of file class.soapclient.php.