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