0
リクエストのサイズを最初に確認するラッパー関数を記述しようとしていますが、要求サイズが期待したものよりも大きければ、特定のコンテンツが返されますクライアントに送信します。私は以前にrequest.content_length
を使用しようとしましたが、要求がPOST
要求であっても機能しましたが、GET
要求では機能しません。それを行う方法はありますか?フラスコ内のGETリクエストの内容の長さを取得する方法
リクエストのサイズを最初に確認するラッパー関数を記述しようとしていますが、要求サイズが期待したものよりも大きければ、特定のコンテンツが返されますクライアントに送信します。私は以前にrequest.content_length
を使用しようとしましたが、要求がPOST
要求であっても機能しましたが、GET
要求では機能しません。それを行う方法はありますか?フラスコ内のGETリクエストの内容の長さを取得する方法
Flaskリクエストは、werkzeugリクエストから継承します。http://werkzeug.pocoo.org/docs/0.12/quickstart/#enter-request。だから、フラスコ内のリクエストのコンテンツの長さは、そのヘッダにある:flask.request.headers.get('Content-Length')
だから、あなたが使用しているのPython、フラスコとWERKZEUGの
import functools
def check_content_length_of_request_decorator(max_content_length):
def wrapper(fn):
@functools.wraps(fn)
def decorated_view(*args, **kwargs):
if int(flask.request.headers.get('Content-Length') or 0) > max_content_length:
return flask.abort(400, description='Too much content in request')
else:
return fn(*args, **kwargs)
return decorated_view
return wrapper
@app.route('/my_route', methods=['GET', 'POST'])
@check_content_length_of_request_decorator(1000)
def my_route():
return 'This request has a valid content length!'
どのバージョンのような何かをするだろうか?あなたはGETリクエストでデータを送信するために何を使用していますか? – Aaron