-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathproxy.py
40 lines (34 loc) · 1.38 KB
/
proxy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from flask import Flask, request, redirect, url_for
import requests
import json
import re
valid_regex = re.compile(r"(http://requestb.in.*|http://(portal.)?eurosentiment.eu.*|http://217.26.90.243:8080/EuroSentimentServices.*|http://54.201.101.125/sparql.*|http://54.187.254.3.*|http://demos.gsi.dit.upm.es/.*|http://portal.eurosentiment.eu.*|http://eurosentiment-endpoint.herokuapp.com.*)")
app = Flask(__name__)
RAW = "raw"
JSON = "application/json"
@app.route('/')
def index():
return redirect(url_for('static', filename="index.html"))
@app.route('/proxy', methods=["POST"])
def hello_world():
payload = request.json
if payload:
url = payload["url"]
if valid_regex.match(url):
method = payload.get("method", "GET")
headers = payload.get("headers")
parameters = payload.get("parameters", [])
for param in parameters:
parameters[param] = parameters[param].encode('utf-8')
data = payload.get("data", None)
if isinstance(data, basestring):
data = data.encode("utf-8")
r = requests.request(method, url, data=data, params=parameters, headers=headers, verify=False)
return r.text
else:
return "Invalid URL"
else:
return "Gimme POST"
if __name__ == "__main__":
app.debug = True
app.run(host="0.0.0.0", port=9292)