当前位置: 首页>>代码示例>>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;未经允许,请勿转载。