def do_POST(self): """Handle POST message containing JSON request from controller.""" header = self.headers.getheader('content-type') if header == 'application/x-www-form-urlencoded': content_length = int(self.headers.getheader('content-length')) post_body = self.rfile.read(content_length) post_json = json.loads(post_body) message_id = post_json["id"] try: result = getattr(RemoteProcedureCall, post_json["method"])(self.server._node, post_json["params"]) lib.send_json_rpc_result(self, message_id, result) except AttributeError: lib.send_json_rpc_error(self, message_id, '-32601', data=('Node has no method named: %s' % post_json["method"])) except lib.RemoteProcedureCallError as exception: lib.send_json_rpc_error(self, message_id, '-32603', data=exception)
def do_POST(self): """Handle POST message containing JSON request.""" header = self.headers.getheader('content-type') if header == 'application/x-www-form-urlencoded': try: content_length = int(self.headers.getheader('content-length')) post_body = self.rfile.read(content_length).decode('utf-8') self.controller.print_debug(TAG, 'post body: ' + str(post_body)) rpc = self._RemoteProcedureCall() rpc.request = json.loads(post_body) rpc = self._validate_request(rpc) rpc.params = rpc.request['params'] rpc = self._validate_method_params(rpc) result = self._call_method(rpc) lib.send_json_rpc_result(self, rpc.id, result) except lib.RemoteProcedureCallError as exception: lib.send_json_rpc_error(self, rpc.id, exception.code, exception.data)