def parse_http2_request(self): self.raw_requestdata = self.connection.read(9) frame_header = Frame.parse_header(self.raw_requestdata) frm_len, frm_type, frm_flag, frm_id = frame_header while frm_len + 9 > len(self.raw_requestdata): self.raw_requestdata += self.connection.read(frm_len - len(self.raw_requestdata) + 9) # read left data stream = self.http2_connection.get_stream(frm_id) stream.receive_frame(frame_header, self.raw_requestdata) if stream.is_wait_for_res: print('end stream id : ', stream.id, ' frm_id ', frm_id) self.headers = stream._client_headers # self.request_version = 'HTTP/2.0' always self.requestline = stream.method + ' ' + stream.path + ' HTTP/2.0' # virtual request line self.path = stream.path self.command = stream.method self.response_stream = stream self.stream = stream return True # handle one request return False