zoukankan      html  css  js  c++  java
  • jsonRPC

    jsonRPC重新整理:


    __call

    php内置函数:

    当请求一个对象的方法不存在是会调用此方法:

    /*
    *@param string $method 请求方法名称。
    *@param array $params 请求方法的参数。
    */
    function __call ($method,$params);


    server.php(服务器)

    <?php
    header("Content-Type:text/html;charset=utf-8");
    $request = file_get_contents('php://input');
    $request=json_decode($request);
    
    $func=$request->func;
    $param=$request->param;
    
    print_r($func);
    print_r($param);
    
    function register(){
    
    }
    
    /*自定义api接口类*/
    class API{
        /**
         * 当请求的方法不存在
         */
        function __call($func,$param){
            throw new Exception($func.'方法不存在!');
        }
        /**
         * 获取接口名称
         */
        public function getApiName(){
            echo  "ApiName:test";
        }
        /**
         *可以定义更多的函数接口。
         */
        public  function  andSoOn(){
            //do nothing
        }
    }
    
    $api=new API();
    call_user_func_array(array($api,$func),$param);
    call_user_func_array函数说明:
       调用回调函数,比如说,小明要买鸡蛋,他可能买的是土鸡蛋或者是超市鸡蛋。这是这个函数就可以派上用场了。

    Client.php (客户端)

    header("Content-Type:text/html;charset=utf-8");
    $request=array(
        'func'=>'getApiName',
        'param'=>array(
        ),
    );
    $request=json_encode($request);
    $opts = array ('http' => array (
        'method'  => 'POST',
        'header'  => 'Content-type: application/json',
        'content' => $request,
    ));
    $context  = stream_context_create($opts);
    
    if ($fp = fopen('http://localhost/web/test/jsonRPC/xx.php', 'r', false, $context)) {
        $response = '';
        while($row = fgets($fp)) {
            $response.= trim($row)."
    ";
        }
        echo $response;
    }

     

  • 相关阅读:
    json学习系列(1)-使用json所要用到的jar包下载
    Java 时间架构图
    时间纪元与时区介绍
    HTML5 Canvas 绘制库存变化折线
    HTML5 Canvas 笛卡尔坐标系转换尝试
    像孩童一样欣喜的看着自己的成长
    《老炮儿》结尾貌似历史上的一幕
    很多人还在守着金饭碗要饭
    还是用文本编辑器编程让人愉悦
    Node.js 网页爬虫再进阶,cheerio助力
  • 原文地址:https://www.cnblogs.com/canbefree/p/3948769.html
Copyright © 2011-2022 走看看