guzzlehttp/guzzle:~6.0安装以及通过jsonrpc获取节点数据

Guzzle是一个PHP的HTTP客户端,可用来发送请求,并集成到WEB服务上,它有以下特点:

1.接口简单:可构建查询语句,POST请求,分流上传下载大文件,使用HTTP cookies,上传JSON数据等。

2.可使用相同的接口来发送同步或异步请求。

3.可使用PSR-7接口来请求,响应,分流,允许使用其他兼容的PSR-7类库与Guzzle共同开发。

4.抽象了底层的HTTP传输,允许改变环境以及其他的代码,比如:对cURL与PHP的流或socket并非重度依赖,非阻塞事件循环。

5.中间件系统允许创建构成客户端行为。


第一,首先使用Composer来安装Guzzle,Composer下载地址,将其安装在5.5.0版本以上的php环境内,否则会报错,若使用phpStudy 2016的PHP+Apache+MySQL服务器环境搭建,则可直接在操作界面切换PHP版本,这里为5.5.38:

guzzlehttp/guzzle:~6.0安装以及通过jsonrpc获取节点数据_第1张图片

第二,之后,在phpStudy\WWW目录下,打开Powershell:

php D:\phpStudy\tools\composer\composer.phar require guzzlehttp/guzzle:~6.0

安装guzzlehttp/guzzle:~6.0,如下:

guzzlehttp/guzzle:~6.0安装以及通过jsonrpc获取节点数据_第2张图片

第三,安装完之后,在WWW主目录下会生成vendor目录以及composer.json文件,在WWW目录下创建一个get_eth_info.php文件来通过guzzle获取eth节点状态,前提是已在地址192.168.1.101开启远程访问节点:






 [
    'jsonrpc' => '2.0',
    'method' => 'net_peerCount',
    'params' => [],
    'id' => 1
  ]
];
$rsp = $client->post('192.168.1.101:8545', $opts);
#print("
");
echo $rsp->getStatusCode(), "
"; echo $rsp->getBody() . PHP_EOL; #print("
"); ?>

其中json参数参考网址,这里只实验net_peerCount方法,其他类似,结果如下:

guzzlehttp/guzzle:~6.0安装以及通过jsonrpc获取节点数据_第3张图片

返回结果为0x5,表示当前与192.168.1.101上eth节点相连的其他节点数为5个。

若显示报错如下:

{"code":-32700,"message":"json: cannot unmarshal string into Go value of type rpc.jsonRequest"}

表示$opts内的json请求格式出错,需重新检查一下。

参考网址

你可能感兴趣的:(区块链,PHP,区块链学习)