【JSON-RPC】JSON-RPC轻量级远程调用协议介绍和使用其进行接口测试

本文介绍了JSON-RPC协议,一种轻量级的远程调用协议,并展示了如何使用JSON-RPC进行接口测试,特别是在处理复杂参数时的优势。通过java版JSON-RPC的maven配置和工具类的编写,详细阐述了接口下发的实现过程。
摘要由CSDN通过智能技术生成

前言

之前使用java做接口测试,均使用HttpClient来进行,今次遇到一个新的项目使用python的odoo框架开发,其接口和之前的网站稍有不同,导致在前台看到的接口返回内容和之前的差别很大,一般的restful接口在控制台里是这样的:
restful
而现项目的控制台显示如下:
在这里插入图片描述
这种参数用通用的HttpClient就不好进行接口下发了,这只是个比较简单的参数,实际上args里还有可能包含字符串列表等类型,故采用JSONRPC的java版进行接口下发就比较方便;

协议简述

json-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议。目前主流语言都已有json-rpc的实现框架,java语言中较好的json-rpc实现框架有jsonrpc4j、jpoxy、json-rpc。三者之中jsonrpc4j既可独立使用,又可与spring无缝集合,比较适合于基于spring的项目开发。

一、JSON-RPC协议描述

son-rpc协议非常简单,发起远程调用时向服务端传输数据格式如下:

{ "method": "sayHello", "params": ["Hello JSON-RPC"], "id": 1} 

参数说明

  • method: 调用的方法名
  • params: 方法传入的参数,若无参数则传入 []
  • id : 调用标识符,用于标示一次远程调用过程

服务器其收到调用请求,处理方法调用,将方法效用结果效应给调用方;返回数据格式:

{ 
  "result":"Hello JSON-RPC",  
   "error": null,    
  "id": 1
  }

参数说明:

  • result: 方法返回值,若无返回值,则返回null。若调用错误,返回null。
  • error :调用时错误,无错误返回null。
  • id : 调用标识符,与调用方传入的标识符一致。
    以上就是json-rpc协议规范,非常简单,小巧,便于各种语言实现。

使用JSON-RPC进行接口下发

JSON-RPC的java版配置比httpClient要简单很多,不需要管理连接、连接池、关闭返回等等,甚至连下发方式都略掉了。
maven地址
源码地址

一、maven配置

这里jsonrpc就一个包,另外一个用于json字符串处理;

<dependency>
      <groupId>com.github.briandilley.jsonrpc4j</groupId>
      <artifactId>jsonrpc4j</artifactId>
      <version>1.5.2</version>
	</dependency>
    <dependency>
	  <groupId>com.alibaba</groupId>
	  <artifactId>fastjson</artifactId>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值