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:
...
Error: 413 Request Entity Too Large
Sorry, the requested URL 'http://127.0.0.1:8008/test'
caused an error:
Request to large
....
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?
解决方案
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