Merge pull request #399 from timrichardson/issues/1898
jsonrpc2 requests need mandatory key/pair jsonrpc:'2.0'
This commit is contained in:
@@ -81,12 +81,13 @@ class JSONSafeTransport(JSONTransportMixin, SafeTransport):
|
|||||||
class ServerProxy(object):
|
class ServerProxy(object):
|
||||||
"JSON RPC Simple Client Service Proxy"
|
"JSON RPC Simple Client Service Proxy"
|
||||||
|
|
||||||
def __init__(self, uri, transport=None, encoding=None, verbose=0):
|
def __init__(self, uri, transport=None, encoding=None, verbose=0,version=None):
|
||||||
self.location = uri # server location (url)
|
self.location = uri # server location (url)
|
||||||
self.trace = verbose # show debug messages
|
self.trace = verbose # show debug messages
|
||||||
self.exceptions = True # raise errors? (JSONRPCError)
|
self.exceptions = True # raise errors? (JSONRPCError)
|
||||||
self.timeout = None
|
self.timeout = None
|
||||||
self.json_request = self.json_response = ''
|
self.json_request = self.json_response = ''
|
||||||
|
self.version = version # '2.0' for jsonrpc2
|
||||||
|
|
||||||
type, uri = urllib.splittype(uri)
|
type, uri = urllib.splittype(uri)
|
||||||
if type not in ("http", "https"):
|
if type not in ("http", "https"):
|
||||||
@@ -112,6 +113,8 @@ class ServerProxy(object):
|
|||||||
# build data sent to the service
|
# build data sent to the service
|
||||||
request_id = random.randint(0, sys.maxint)
|
request_id = random.randint(0, sys.maxint)
|
||||||
data = {'id': request_id, 'method': method, 'params': args, }
|
data = {'id': request_id, 'method': method, 'params': args, }
|
||||||
|
if self.version:
|
||||||
|
data['jsonrpc'] = self.version #mandatory key/value for jsonrpc2 validation else err -32600
|
||||||
request = json.dumps(data)
|
request = json.dumps(data)
|
||||||
|
|
||||||
# make HTTP request (retry if connection is lost)
|
# make HTTP request (retry if connection is lost)
|
||||||
|
|||||||
Reference in New Issue
Block a user