private function RESTServer::parseRequest in Services 6.3
1 call to RESTServer::parseRequest()
- RESTServer::getControllerArguments in servers/
rest_server/ includes/ RESTServer.inc - Parses controller arguments from request
File
- servers/
rest_server/ includes/ RESTServer.inc, line 251 - Class for handling REST calls.
Class
- RESTServer
- @file Class for handling REST calls.
Code
private function parseRequest($method, $controller) {
switch ($method) {
case 'POST':
case 'PUT':
if (isset($_SERVER['CONTENT_TYPE'])) {
$type = self::parseContentHeader($_SERVER['CONTENT_TYPE']);
}
// Get the mime type for the request, default to form-urlencoded
if (isset($type['value'])) {
$mime = $type['value'];
}
else {
$mime = 'application/x-www-form-urlencoded';
}
// Get the parser for the mime type
$parser = $this
->requestParser($mime, $controller);
if (!$parser) {
return services_error(t('Unsupported request content type @mime', array(
'@mime' => $mime,
)), 406);
}
// php://input is not available with enctype="multipart/form-data".
// see http://php.net/manual/en/wrappers.php.php
if ($mime == 'multipart/form-data') {
$data = call_user_func($parser);
}
else {
// Read the raw input stream.
if (module_exists('inputstream')) {
$handle = fopen('drupal://input', 'r');
}
else {
$handle = fopen('php://input', 'r');
}
if ($handle) {
$data = call_user_func($parser, $handle);
fclose($handle);
}
}
return $data;
default:
return array();
}
}