當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Call::handle方法代碼示例

本文整理匯總了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;
//.........這裏部分代碼省略.........
開發者ID:ATouhou,項目名稱:mashape-php-library,代碼行數:101,代碼來源:handler.php


注:本文中的Call::handle方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。