Skip to content

Instantly share code, notes, and snippets.

@tokland
Created March 21, 2022 11:45
Show Gist options
  • Save tokland/fe05c135a8c96ae86b06ead2f14a492b to your computer and use it in GitHub Desktop.
Save tokland/fe05c135a8c96ae86b06ead2f14a492b to your computer and use it in GitHub Desktop.
Flask CORS proxy redirector
import json
import requests
import urllib
from flask import Flask, Response, stream_with_context, request
app = Flask(__name__)
@app.route('/<path:url>', methods=["GET", "POST", "PUT", "DELETE"])
def proxy(url):
method = request.method.lower()
http_request = getattr(requests, method)
headers = dict((k, v) for (k, v) in dict(request.headers).items() if k != "Host")
if request.json:
forward_request = http_request(url, json=request.json, headers=headers)
elif request.form:
forward_request = http_request(url, data=request.form.to_dict(), headers=headers)
else:
forward_request = http_request(url, headers=headers)
response = stream_with_context(forward_request.iter_content())
return Response(response, content_type=request.content_type)
if __name__ == '__main__':
app.run(debug=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment