https://github.com/wheeler-microfluidics/application_repository.jsonrpc
Tập tin proxy.py được sửa lại cho python 3 như sau :
import urllib.request, urllib.parse, urllib.error
from jsonrpc.json import dumps, loads
class JSONRPCException(Exception):
def __init__(self, rpcError):
Exception.__init__(self)
self.error = rpcError
class ServiceProxy(object):
def __init__(self, serviceURL, serviceName=None):
self.__serviceURL = serviceURL
self.__serviceName = serviceName
def __getattr__(self, name):
if self.__serviceName != None:
name = "%s.%s" % (self.__serviceName, name)
return ServiceProxy(self.__serviceURL, name)
def __call__(self, *args):
postdata = dumps({"method": self.__serviceName, 'params': args, 'id':'jsonrpc'})
postdata = postdata.encode('utf-8')
respdata = urllib.request.urlopen(self.__serviceURL, postdata).read()
resp = loads(respdata.decode('utf-8'))
if 'error' in resp:
raise JSONRPCException(resp['error'])
else:
return resp['result']
Giả dụ, ta có phương thức get_status ở địa chỉ url "http://localhost/services/jsonrpc", sử dụng proxy gọi phương thức này như sau :
>>> from jsonrpc import ServiceProxy
>>> proxy = ServiceProxy("http://localhost/services/jsonrpc")
>>> print("Server status :", proxy.get_status())
Chi tiết dùng module này xem tại đây :
https://www.jsonrpc.org/archive_json-rpc.org/python-json-rpc.html