function soap_server::parseRequest in Salesforce Suite 5
Same name in this branch
- 5 includes/nusoap.php \soap_server::parseRequest()
- 5 includes/nusoap.orig.php \soap_server::parseRequest()
Same name and namespace in other branches
- 5.2 includes/nusoap.php \soap_server::parseRequest()
- 5.2 includes/nusoap.orig.php \soap_server::parseRequest()
* processes SOAP message received from client * *
Parameters
array $headers The HTTP headers: * @param string $data unprocessed request data from client * @return mixed value of the message, decoded into a PHP type * @access private
2 calls to soap_server::parseRequest()
- soap_server::parse_request in includes/
nusoap.php - * parses a request * * The following fields are set by this function (when successful) * * headers * request * xml_encoding * SOAPAction * request * requestSOAP * methodURI * methodname * methodparams * requestHeaders * document * *…
- soap_server::parse_request in includes/
nusoap.orig.php - * parses a request * * The following fields are set by this function (when successful) * * headers * request * xml_encoding * SOAPAction * request * requestSOAP * methodURI * methodname * methodparams * requestHeaders * document * *…
File
- includes/
nusoap.php, line 3810
Class
- soap_server
- soap_server allows the user to create a SOAP server that is capable of receiving messages and returning responses
Code
function parseRequest($headers, $data) {
$this
->debug('Entering parseRequest() for data of length ' . strlen($data) . ' and type ' . $headers['content-type']);
if (!strstr($headers['content-type'], 'text/xml')) {
$this
->setError('Request 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 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 soap_parser');
// parse response, get soap parser obj
$parser = new soap_parser($data, $this->xml_encoding, '', $this->decode_utf8);
// parser debug
$this
->debug("parser debug: \n" . $parser
->getDebug());
// if fault occurred during message parsing
if ($err = $parser
->getError()) {
$this->result = 'fault: error in msg parsing: ' . $err;
$this
->fault('Client', "error in msg parsing:\n" . $err);
// else successfully parsed request into soapval object
}
else {
// get/set methodname
$this->methodURI = $parser->root_struct_namespace;
$this->methodname = $parser->root_struct_name;
$this
->debug('methodname: ' . $this->methodname . ' methodURI: ' . $this->methodURI);
$this
->debug('calling parser->get_response()');
$this->methodparams = $parser
->get_response();
// get SOAP headers
$this->requestHeaders = $parser
->getHeaders();
// add document for doclit support
$this->document = $parser->document;
}
}