Yii2可以通过json-rpc为前端提供接口数据,通常情况睛会使用异步的形式调用接口,有时也会使用curl调用接口数据。

一、异步调用json-rpc接口

$.ajax({
type: 'POST',
url: "http://localhost/index?r=test",
xhrFields: {withCredentials: true},
data: JSON.stringify([{
jsonrpc: "2.0",
method: "order-list",
params: {id: 3},
id: "1"
}]),
success: function(res){
console.log(res); },
dataType: "json",
contentType: "application/json-rpc",
error: function(){}
});

分析:json-rpc异步请求接口与普通的ajax异步请求相比,主要在于其设置了请求的content-type,传递的参数中包含了几个字段,jsonrpc method params id,知道了这些,我们通过设置curl的选项与参数,来模拟jsonrpc请求。

二、crul请求josnrpc接口

#请求的url
$url = 'http://localhost/index.php?r=test; //参数是为了防止缓存
#请求参数,如果想一次调用多个接口,data设置成二维数据即可
/*$data1 = [
  [
  'jsonrpc' => '2.0',
  'method' => 'test1',
  'id' => 0,
  'params' => ['id' => '3']
  ],
  [
  'jsonrpc' => '2.0',
  'method' => 'test2',
  'id' => 0,
  'params' => ['id' => '3']
  ],
  
];*/
$data = [
  'jsonrpc' => '2.0',
  'method' => 'test1',
  'id' => 0,
  'params' => ['id' => '3']
];
#curl初始化
$ch = curl_init();
#请求参数设置
$options = array(
  CURLOPT_URL => $url,
  CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0",
  CURLOPT_RETURNTRANSFER => 1,
  CURLOPT_HTTPHEADER => Array("Content-Type: application/json-rpc")
);
curl_setopt_array($ch, $options);
#JSON数据
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
#发送请求并接收返回信息
$html=curl_exec($ch);
#获取请求的详细信息 用于调试,可以没有
$info = curl_getinfo($ch); curl_close($ch);
#打印返回数据
var_dump($html);die;

Yii2通过curl调用json-rpc接口的更多相关文章

  1. rpc接口调用以太坊智能合约

    rpc接口调用以太坊智能合约 传送门: 柏链项目学院   在以太坊摸爬滚打有些日子了,也遇到了各种各样的问题.这几天主要研究了一下如何通过rpc接口编译.部署和调用合约.也遇到了一些困难和问题,下面将 ...

  2. 測试JSON RPC远程调用(JSONclient)

    #include <string> #include <iostream> #include <curl/curl.h> /* 标题:JSonclient Auth ...

  3. python调用RPC接口

    要调用RPC接口,python提供了一个框架grpc,这是google开源的 rpc相关文档: https://grpc.io/docs/tutorials/basic/python.html 需要安 ...

  4. asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文件接口

    FormItem类 public class FormItem { public string Name { get; set; } public ParamType ParamType { get; ...

  5. 上有传参下传json的接口调用

    1.优化Myrequest import requests from conf.setting import log class MyRequest(): @staticmethod def post ...

  6. atitit.基于http json api 接口设计 最佳实践 总结o7

    atitit.基于http  json  api 接口设计 最佳实践 总结o7 1. 需求:::服务器and android 端接口通讯 2 2. 接口开发的要点 2 2.1. 普通参数 meth,p ...

  7. Thinkphp3.2.3框架下封装公共的函数,例如封装CURL函数来获取接口数据

    当我们需要在控制层调用相同的封装函数时,写多次相同的函数,显得代码十分的拉杂,不精简: TP框架有一个很好的机制,可以再Common定义一个function.php函数,当我们在控制层调用的时候直接调 ...

  8. 程序员的自我救赎---11.1:RPC接口使用规范

    <前言> (一) Winner2.0 框架基础分析 (二)PLSQL报表系统 (三)SSO单点登录 (四) 短信中心与消息中心 (五)钱包系统 (六)GPU支付中心 (七)权限系统 (八) ...

  9. php curl请求和获取接口数据

    curl请求和获取接口数据 class ToolModel{ /** * [http 调用接口函数] * @Author GeorgeHao * @param string $url [接口地址] * ...

随机推荐

  1. python工程设置工具(pipenv)

    原始安装 pip工具 --- 包安装工具, 可以从Python包索引hub上安装,也可以使用自定义的hub. 命令: pip install xxx 缺点: 1.命令方式, 一次只能安装一个包, 对于 ...

  2. 最好用的Redis Desktop Manager 0.9.3 版本下载

    因为Redis Desktop Manager作者在 0.9.4 版本之后选择对所有的安装包收费,不再提供安装包下载,但是源码依旧公开. github 上有 redis destop manager ...

  3. jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败

    jzy3D从入门到弃坑_4 尝试使用jzy3D1.0画图失败 觉得有用的话,欢迎一起讨论相互学习~Follow Me 记录一下使用jzy3D1.0失败 究其原因在于 本人才疏学浅,对于JAVA ope ...

  4. 【451】python 同一行打印进度条

    参考:Python3 Print 同一行打印显示进度条效果 参考:\r\n, \r and \n what is the difference between them? [duplicate] 参考 ...

  5. SQL Server:时间范围查询重叠

    常常碰到要校验数据范围是否存在重叠冲突的情况,典型的场景是房间预订. 假如房间A已经有9月1日-9月10日的预订记录,当其它客人再来预订时,系统必须判断,不能与这个日期范围产生重叠. 有四种情况会产生 ...

  6. Xshell连接SqlPlus无法使用退格、删除键

    问题:在使用xshell连接CentOS7,进入SQLPLUS进行命令操作时,如果输错了信息,无法进行退格键删除(显示“^H”),同样按删除键,显示“^[[3~”. 解决:网上查找了相关资料,可以通过 ...

  7. [数据结构 - 第6章] 树之二叉平衡树(C语言实现)

    一.什么是平衡二叉树? 平衡二叉树(Balanced Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两 ...

  8. 【ztree】获取根节点

    var node = treeObj.getNodesByFilter(function (node) { return node.level == 0 }, true);

  9. pyhthon Opencv截取视频中的图片

    import os import cv2 ##加载OpenCV模块 def video2frames(pathIn='', pathOut='', imgname='', only_output_vi ...

  10. C++四大特性之封装

    C++四大特性 C++作为面向对象编程语言,具备面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的四大特性.抽象,封装,继承,多态. 所谓抽象,就是对具 ...