Using Python's module bottle
, I'm getting HTTP 413 error when posting requests of body size > bottle
's internal MEMFILE_MAX
constant. Minimal working example is shown below.
Server part (server.py
):
from bottle import * @post('/test') def test(): return str(len(request.forms['foo'])); def main(): run(port=8008); if __name__ == '__main__': main();
Client part (client.py
):
import requests def main(): url = 'http://127.0.0.1:8008/test'; r = requests.post(url, data={ 'foo' : 100000 * 'a' }); print(r.text); r = requests.post(url, data={ 'foo' : 200000 * 'a' }); print(r.text); if __name__ == '__main__': main();
The first request prints:
100000
The second request prints:
... <body> <h1>Error: 413 Request Entity Too Large</h1> <p>Sorry, the requested URL <tt>'http://127.0.0.1:8008/test'</tt> caused an error:</p> <pre>Request to large</pre> </body> ....
I have absolutely no idea how to increase the bottle
's internal limit. Is there any simple way to increase the limit, allowing requests of size, e.g., 1 MB?
The HTTP 413 Payload Too Large response status code indicates that the request entity is larger than limits defined by server; the server might close the connection or return a Retry-After header field.
You should be able to just
import bottle bottle.BaseRequest.MEMFILE_MAX = 1024 * 1024 # (or whatever you want)
This appears to be the only way based on the source
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With