首页 > 代码库 > jsonRPC

jsonRPC

__call

php内置函数:

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

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

 

stream_context_create

$opts = array (‘http‘ => array (    ‘method‘  => ‘POST‘,    ‘header‘  => ‘Content-type: application/json‘,    ‘content‘ => $request));$context  = stream_context_create($opts);if ($fp = fopen($url, ‘r‘, false, $context)){    while($row=fgets($fp)){        echo $row;    }}

这个函数主要是对 fopen以及其他系统函数进行设置。 

如上图 规定了提交的请求类型为json格式,方式为 POST,内容为$request。(json对象);

 

 

$request = json_decode(file_get_contents(‘php://input‘),true);

这个就是拿到上面提交的 $request。 

file_get_contents(‘php://input‘)其实得到就是 $_POST,只是格式不一样罢了;

 

 

其实 jsonRPC 只是利用了 file_get_contents(‘php://input‘) 来获取,如同 ajax请求一样。 请求RPC服务器上的方法,获取该方法得到的值或对象。

 

jsonRPC