self.log_message('REQUEST_LINE: {}'.format( request_line.decode('ascii').strip())) self.log_message('HEADERS:\n{}'.format('\n'.join( ['{}: {}'.format(k, v) for k, v in headers.items()]))) self.log_message('BODY:\n{}'.format(body.decode('ascii'))) resp = requests.request(method, url, headers=headers, data=body) self.send_response(resp.status_code) for key, value in resp.headers.items(): self.send_header(key, value) self.end_headers() self.wfile.write(resp.content) if __name__ == "__main__": parser = argparse.ArgumentParser(description='Fake out repose') parser.add_argument('lport', type=int, help='port to listen on') parser.add_argument('bport', type=int, help='backend port to forward requests to') args = parser.parse_args() MyHTTPHandler.backend_port = args.bport server = HTTPServer(('localhost', args.lport), MyHTTPHandler) server.backend_port = args.bport # Activate the server; this will keep running until you # interrupt the program with Ctrl-C server.serve_forever()