diff --git a/app.py b/app.py index fafe36b..ac034fb 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,6 @@ import os +import requests from flask import Flask, request, Response, render_template, jsonify app = Flask(__name__) @@ -82,5 +83,28 @@ def log_view(): return Response(data) +@app.route("/http_request", methods=["POST"]) +def http_request_view(): + """ + Performs an http request. + The view is just a passthrough to the requests library: + - `method` parameter to set the request method + - Every other parameter will be sent directly to the requests request method + """ + params = request.json + method = params.pop("method", "GET") + response = requests.request(method, **params) + + return jsonify({ + "method": method, + "params": params, + "response": { + "content": response.text, + "json": response.json(), + "headers": {key: value for key, value in response.headers.items()} + } + }) + + if __name__ == "__main__": app.run(debug=True, port=8080, host="0.0.0.0") diff --git a/requirements.txt b/requirements.txt index 2ec18e9..30692b7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -flask==1.1.1 +flask +requests