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:


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

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

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


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

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
 //===================================
 // PHP 测试获取eth节点状态代码
 //===================================

 //-----------------------------------
 // 获取地址192.168.1.101上节点所连接的节点数目信息
 //-----------------------------------

 /*
 *使用第三方guzzle架构
 *创建对象GuzzleHttp\Client
 *获取地址192.168.1.101上节点连接的节点数信息
 */
require '/vendor/autoload.php';
use GuzzleHttp\guzzle;
$client = new GuzzleHttp\Client();
$opts = [
    'json' => [
    'jsonrpc' => '2.0',
    'method' => 'net_peerCount',
    'params' => [],
    'id' => 1
  ]
];
$rsp = $client->post('192.168.1.101:8545', $opts);
#print("<pre>");
echo $rsp->getStatusCode(), "<br>";
echo $rsp->getBody() . PHP_EOL;
#print("</pre>");
?>
</body>
</html>

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


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

若显示报错如下:

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

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

参考网址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值