def do_POST(self, request, response): """ Handle a POST request :param request: The HTTP request bean :param request: The HTTP response handler """ # Get the request JSON content data = jsonrpclib.loads(to_str(request.read_data())) # Convert from Jabsorb data = jabsorb.from_jabsorb(data) # Dispatch try: result = self._unmarshaled_dispatch(data, self._simple_dispatch) except NoMulticallResult: # No result (never happens, but who knows...) result = None if result is not None: # Convert result to Jabsorb if 'result' in result: result['result'] = jabsorb.to_jabsorb(result['result']) # Store JSON result = jsonrpclib.jdumps(result) else: # It was a notification result = '' # Send the result response.send_content(200, result, 'application/json-rpc')
def _on_message(self, ws, payload): logger.debug('Got message: %r' % (payload, )) msg = loads(payload) method = msg.get('method') logger.debug('Got message: %r' % (msg, )) if method: f = self.method_register.get(method) if f: logger.info('Calling %s with %r' % (method, msg['params'])) f(*msg['params']) else: logger.warning('Unknown method %s' % method) else: logger.info('Not sure what to do about: %r' % (msg, ))
def parse_request(self, request_body): try: request = loads(request_body) except: # Bad request formatting # self.traceback() return self.faults.parse_error() self._requests = request self._batch = False request_list = [] if isbatch(request): self._batch = True for req in request: req_tuple = (req["method"], req.get("params", [])) request_list.append(req_tuple) else: self._requests = [request] request_list.append((request["method"], request.get("params", []))) return tuple(request_list)
def parse_request(self, request_body): try: request = loads(request_body) except: # Bad request formatting self.traceback() return self.faults.parse_error() self._requests = request self._batch = False request_list = [] if isbatch(request): self._batch = True for req in request: req_tuple = (req['method'], req.get('params', [])) request_list.append(req_tuple) else: self._requests = [request] request_list.append((request['method'], request.get('params', []))) return tuple(request_list)
def parse_request(self, request_body): try: request_body_str = request_body.decode('utf-8') request = loads(request_body_str) except: # Bad request formatting. Bad. self.traceback() return self.faults.parse_error() self._requests = request self._batch = False request_list = [] if isbatch(request): self._batch = True for req in request: req_tuple = (req['method'], req.get('params', [])) request_list.append(req_tuple) else: self._requests = [request,] request_list.append( (request['method'], request.get('params', [])) ) return tuple(request_list)