commerce-demo / proxy.py
bergum's picture
Update proxy.py
c1fd764
#!/usr/bin/env python3
import http.server
import http.client
import socketserver
PORT = 8000
PROXY_PORT = 8080
class ProxyRequestHandler(http.server.SimpleHTTPRequestHandler):
def do_GET(self):
# Forward GET request to the proxy port with "/site" appended to the path
if self.path == '/' or self.path.startswith("/?"):
url = 'http://localhost:{}{}'.format(PROXY_PORT, '/site' + self.path)
else:
url = 'http://localhost:{}{}'.format(PROXY_PORT, self.path)
headers = dict(self.headers)
if 'Host' in headers:
del headers['Host'] # Remove "Host" header to avoid "HTTP/1.1 400 Bad Request" error
if 'host' in headers:
del headers['host'] # Remove "Host" header to avoid "HTTP/1.1 400 Bad Request" error
conn = http.client.HTTPConnection('localhost', PROXY_PORT)
print(headers)
conn.request('GET', url, headers=headers)
response = conn.getresponse()
self.send_response(response.status)
for header, value in response.getheaders():
self.send_header(header, value)
self.end_headers()
self.wfile.write(response.read())
if __name__ == '__main__':
# Start the HTTP server
with socketserver.TCPServer(("", PORT), ProxyRequestHandler) as httpd:
print("Server running on port", PORT)
httpd.serve_forever()