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服务器上的方法,获取该方法得到的值或对象。

时间: 2024-08-09 22:53:58

jsonRPC的相关文章

C语言实现JSON-RPC

最近对json-rpc比较感兴趣,思想很简单,而且看到了很多不同语言的实现.在github上 hmngomes 的 json-rpc-c (实现的是server端,基于TCP流),短小精悍,提供了很好的框架,代码十分清晰,易于扩展,而且代码容易看懂,很经典.该实现依赖于其它两个库 libev 和 cJSON,值得认真学习. 测试的时候先启动server,而后通过 nc 命令发送相应的json格式数据,就会有相应的效果: [email protected]:~$ echo "{\"met

Zabbix 2.2 < 3.0.3 - RCE with API JSON-RPC

漏洞来源: https://www.exploit-db.com/exploits/39937/ 攻击成本:高 危害程度:低(此洞需要密码) 利用条件: 需要高权限用户登录 影响范围:2.2 < 3.0.3 tips:   此洞需要你拿到高权限的账户密码,当你拿到账户密码之后,进入后台也可以执行命令,利用API JSON-RPC为第二种方案.   此exp并不是很完美,因为不会自动获取hostid. #!/usr/bin/env python # -*- coding: utf-8 -*- # 

delphi 使用superobject实现jsonrpc的http远程调用 good

[delphi] view plain copy procedure TForm5.Button4Click(Sender: TObject); var O, item: ISuperObject; Strm: TStringStream; result: string; ctx: TSuperRttiContext; student: TStudent; begin //可以参考superobject 的readme.html //json demo https://en.bitcoin.it

使用Jayrock开源组件开发基于JSON-RPC协议的接口

最近接手一个以前的项目,无意间发现此项目开发接口的组件:Jayrock(接口组件估计用的少,用的最多的估计是这个Jayrock.json.dll,用于解析json) 以下是Jayrock的介绍官网: https://atifaziz.github.io/projects/jayrock/ 如果你在开发上使用了该组件,上面的官网会是一个不错的入门教程. 在研究的过程中,发现Jayrock有以下的特定,主要从开发角度方向进行分析. 优点如下: 1.接口开发和部署简单,直接继承组件的JsonRpcHa

JSON-RPC轻量级远程调用协议介绍及使用

JSON-RPC轻量级远程调用协议介绍及使用 目录 技术简介    1 一.JSON-RPC协议描述    1 二.JSON-RPC调用简单示例    1 2.1.服务器端Java调用示例    1 2.2.Java客户端调用示例    2 2.3.PHP客户端调用示例    2 2.3.JavaScript客户端调用示例    2 2.4.直接GET请求进行调用    2 三.JSON-RPC总结    3 参考文档    3 技术简介 json-rpc是基于json的跨语言远程调用协议,比x

NodeJS POST Request Over JSON-RPC

1.npm install art-template2.npm  install request3.在app.js中加入以下代码转html: var template = require('art-template');template.config('base', '');template.config('extname', '.html');app.engine('.html', template.__express);app.set('view engine', 'html'); 4.在r

利用QObject反射实现jsonrpc

1.jsonrpc请求中的params数组生成签名 static QString signatureFromJsonArray(const QJsonArray &array) { QStringList list; foreach(const QJsonValue &v, array) { list<<JSTypeToString(v.type()); } return list.join(","); } 2.QObject对象内的方法生成签名 stati

json-rpc 2.0规范解读

JSON-RPC2.0规范由JSON-RPC工作组([email protected])维护,发布于2010-03-26(基于2009-05-24的版本), 最近的更新于2013-01-04. 整体来说,2.0版本的JSON-RPC规范改动的很小,大的改动大概有3点: 参数可以用数组或命名参数 批量请求的细节明确化了 错误处理的机制标准化了 与1.0版本的兼容性 建议2.0规范的实现兼容1.0协议,但是不强制要求,如果不能兼容,建议给出友好提示. 请求和响应报文加了个参数表示协议的版本号:jso

JSON-RPC 2.0规范 翻译 中文版

JSON-RPC 2.0规范 起源日期: 2010-03-26(基于2009-05-24的版本) 修正: 2013-01-04 作者: JSON-RPC 工作组 <[email protected]> 1 概述 JSON-RPC是一个无状态的.轻量级的远程过程调用(RPC)协议.本规范主要围绕它的处理方式定义了几个数据结构和规则.这个概念可用于在同一进程中.套接字或HTTP之间.或其他很多消息传递的环境中传输数据.它使用JSON (RFC 4627)作为数据格式. JSON-RPC的设计很简单

利用jsonrpc技术包装uiautomator

昨天一天在网上搜索解决上一篇文章中的exception: monkeyrunner内置uiautomator出错的原因 虽然没找到解决的方法,但是让我无意中发现了一个好工具,比sl4a更好用的工具,直接包装uiautomator,调用uiautomator的api在本地直接编写脚本,然后运行测试case,这样比用java写,然后再打包,runcase要简单的多,关键是他还延伸很多有用的方法,比google原生的要强大一点.下面让它登场吧. Name: Python wrapper of Andr