本文整理汇总了PHP中Call::handle方法的典型用法代码示例。如果您正苦于以下问题:PHP Call::handle方法的具体用法?PHP Call::handle怎么用?PHP Call::handle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Call
的用法示例。
在下文中一共展示了Call::handle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: handleAPI
public static function handleAPI($instance, $serverKey)
{
header("Content-type: application/json");
try {
if ($instance == null) {
throw new MashapeException(EXCEPTION_INSTANCE_NULL, EXCEPTION_SYSTEM_ERROR_CODE);
}
$requestMethod = isset($_SERVER['REQUEST_METHOD']) ? strtolower($_SERVER['REQUEST_METHOD']) : null;
$params;
if ($requestMethod == 'post') {
$params = array_merge(self::getAllParams($_GET), self::getAllParams($_POST));
} else {
if ($requestMethod == 'get') {
$params = self::getAllParams($_GET);
} else {
if ($requestMethod == 'put' || $requestMethod == 'delete') {
$params = HttpUtils::parseQueryString(file_get_contents("php://input"));
} else {
throw new MashapeException(EXCEPTION_NOTSUPPORTED_HTTPMETHOD, EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE);
}
}
}
$operation = isset($params[OPERATION]) ? $params[OPERATION] : null;
unset($params[OPERATION]);
// remove the operation parameter
if (empty($operation)) {
$operation = "call";
}
if ($operation != null) {
$result;
switch (strtolower($operation)) {
case "discover":
header("Content-type: application/xml");
$discover = new Discover();
$result = $discover->handle($instance, $serverKey, $params, $requestMethod);
break;
case "call":
$call = new Call();
$result = $call->handle($instance, $serverKey, $params, $requestMethod);
break;
default:
throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE);
}
$jsonpCallback = isset($params[CALLBACK]) ? $params[CALLBACK] : null;
if (empty($jsonpCallback)) {
// Print the output
echo $result;
} else {
if (self::validateCallback($jsonpCallback)) {
echo $jsonpCallback . '(' . $result . ')';
} else {
throw new MashapeException(EXCEPTION_INVALID_CALLBACK, EXCEPTION_SYSTEM_ERROR_CODE);
}
}
} else {
// Operation not supported
throw new MashapeException(EXCEPTION_NOTSUPPORTED_OPERATION, EXCEPTION_NOTSUPPORTED_OPERATION_CODE);
}
} catch (Exception $e) {
//If it's an ApizatorException then print the specific code
if ($e instanceof MashapeException) {
header("Content-type: application/json");
$code = $e->getCode();
switch ($code) {
case EXCEPTION_XML_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
case EXCEPTION_INVALID_HTTPMETHOD_CODE:
header("HTTP/1.0 405 Method Not Allowed");
break;
case EXCEPTION_NOTSUPPORTED_HTTPMETHOD_CODE:
header("HTTP/1.0 405 Method Not Allowed");
break;
case EXCEPTION_NOTSUPPORTED_OPERATION_CODE:
header("HTTP/1.0 501 Not Implemented");
break;
case EXCEPTION_METHOD_NOTFOUND_CODE:
header("HTTP/1.0 404 Not Found");
break;
case EXCEPTION_AUTH_INVALID_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_AUTH_INVALID_SERVERKEY_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_REQUIRED_PARAMETERS_CODE:
header("HTTP/1.0 200 OK");
break;
case EXCEPTION_GENERIC_LIBRARY_ERROR_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
case EXCEPTION_INVALID_APIKEY_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_EXCEEDED_LIMIT_CODE:
self::setUnauthorizedResponse();
break;
case EXCEPTION_SYSTEM_ERROR_CODE:
header("HTTP/1.0 500 Internal Server Error");
break;
//.........这里部分代码省略.........