zoukankan      html  css  js  c++  java
  • jsonRPC

    <?php

    /**
    * Simple JSON-RPC interface.
    */
    namespace org;

    class JsonRpc
    {
    protected $host, $port, $version;
    protected $id = 0;

    function __construct($host, $port, $version="2.0")
    {
    $this->host = $host;
    $this->port = $port;
    $this->version = $version;
    }

    function request($method, $params=array())
    {
    $data = array();
    $data['jsonrpc'] = $this->version;
    $data['id'] = $this->id++;
    $data['method'] = $method;
    $data['params'] = $params;

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $this->host);
    curl_setopt($ch, CURLOPT_PORT, $this->port);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

    $ret = curl_exec($ch);

    if($ret !== FALSE)
    {
    $formatted = $this->format_response($ret);

    if(isset($formatted->error))
    {
    //throw new RPCException($formatted->error->message, $formatted->error->code);
    return false;
    }
    else
    {
    return $formatted;
    }
    }
    else
    {
    throw new hinkException("Server did not respond");
    }
    }

    function format_response($response)
    {
    return @json_decode($response);
    }
    }

    // class RPCException extends Exception
    // {
    // public function __construct($message, $code = 0, Exception $previous = null)
    // {
    // parent::__construct($message, $code, $previous);
    // }

    // public function __toString()
    // {
    // return __CLASS__ . ": ".(($this->code > 0)?"[{$this->code}]:":"")." {$this->message} ";
    // }
    // }
  • 相关阅读:
    文件恢复工具Recuva安装与使用
    卸载工具Geek安装与使用(超全面)
    聚类总结
    Github访问加速
    机器学习常用网站(大牛推荐)
    知识表示之框架表示法
    知识表示之产生式表示法
    知识表示之一阶谓词逻辑表示
    ubuntu下如何解压zip文件(超详细)
    常用学习网站及资料(经常逛)
  • 原文地址:https://www.cnblogs.com/wzjwffg/p/11277421.html
Copyright © 2011-2022 走看看