def request(self,<EOL>method,<EOL>path,<EOL>data=None,<EOL>stream=False,<EOL>headers=None,<EOL>username=None,<EOL>password=None,<EOL>schema=None,<EOL>**kwargs):
if headers is None:<EOL><INDENT>headers = {}<EOL><DEDENT>if '<STR_LIT>' not in headers:<EOL><INDENT>length = super_len(data)<EOL>if length is not None:<EOL><INDENT>headers['<STR_LIT>'] = length<EOL><DEDENT><DEDENT>if username is not None:<EOL><INDENT>if '<STR_LIT>' not in headers and username is not None:<EOL><INDENT>credentials = username + '<STR_LIT::>'<EOL>if password is not None:<EOL><INDENT>credentials += password<EOL><DEDENT>headers['<STR_LIT>'] = '<STR_LIT>' % b64encode(credentials.encode('<STR_LIT:utf-8>')).decode('<STR_LIT:utf-8>')<EOL><DEDENT>if '<STR_LIT>' not in headers:<EOL><INDENT>headers['<STR_LIT>'] = username<EOL><DEDENT><DEDENT>if schema is not None:<EOL><INDENT>headers['<STR_LIT>'] = schema<EOL><DEDENT>headers['<STR_LIT>'] = '<STR_LIT:application/json>'<EOL>headers['<STR_LIT:Content-Type>'] = '<STR_LIT:application/json>'<EOL>kwargs['<STR_LIT>'] = False<EOL>kwargs['<STR_LIT>'] = False<EOL>kwargs['<STR_LIT>'] = Retry(read=<NUM_LIT:0>)<EOL>return self.pool.urlopen(<EOL>method,<EOL>path,<EOL>body=data,<EOL>preload_content=not stream,<EOL>headers=headers,<EOL>**kwargs<EOL>)<EOL>
Send a request

        Always set the Content-Length and the Content-Type header.