function soap_server::service in Salesforce Suite 5.2
Same name in this branch
- 5.2 includes/nusoap.php \soap_server::service()
- 5.2 includes/nusoap.orig.php \soap_server::service()
Same name and namespace in other branches
- 5 includes/nusoap.php \soap_server::service()
- 5 includes/nusoap.orig.php \soap_server::service()
* processes request and returns response * *
Parameters
string $data usually is the value of $HTTP_RAW_POST_DATA: * @access public
File
- includes/
nusoap.php, line 3256
Class
- soap_server
- soap_server allows the user to create a SOAP server that is capable of receiving messages and returning responses
Code
function service($data) {
global $HTTP_SERVER_VARS;
if (isset($_SERVER['QUERY_STRING'])) {
$qs = $_SERVER['QUERY_STRING'];
}
elseif (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$qs = $HTTP_SERVER_VARS['QUERY_STRING'];
}
else {
$qs = '';
}
$this
->debug("In service, query string={$qs}");
if (ereg('wsdl', $qs)) {
$this
->debug("In service, this is a request for WSDL");
if ($this->externalWSDLURL) {
if (strpos($this->externalWSDLURL, "://") !== false) {
// assume URL
header('Location: ' . $this->externalWSDLURL);
}
else {
// assume file
header("Content-Type: text/xml\r\n");
$fp = fopen($this->externalWSDLURL, 'r');
fpassthru($fp);
}
}
elseif ($this->wsdl) {
header("Content-Type: text/xml; charset=ISO-8859-1\r\n");
print $this->wsdl
->serialize($this->debug_flag);
if ($this->debug_flag) {
$this
->debug('wsdl:');
$this
->appendDebug($this
->varDump($this->wsdl));
print $this
->getDebugAsXMLComment();
}
}
else {
header("Content-Type: text/html; charset=ISO-8859-1\r\n");
print "This service does not provide WSDL";
}
}
elseif ($data == '' && $this->wsdl) {
$this
->debug("In service, there is no data, so return Web description");
print $this->wsdl
->webDescription();
}
else {
$this
->debug("In service, invoke the request");
$this
->parse_request($data);
if (!$this->fault) {
$this
->invoke_method();
}
if (!$this->fault) {
$this
->serialize_return();
}
$this
->send_response();
}
}