使用Python的模块bottle,发布主体尺寸>bottle的内部MEMFILE_MAX常量的请求时,出现HTTP 413错误。最小的工作示例如下所示。
bottle
MEMFILE_MAX
服务器部分(server.py):
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.py):
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();
第一个请求打印:
100000
第二个请求打印:
... <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> ....
我绝对不知道如何增加bottle的内部限制。是否有任何简单的方法来增加限制,从而允许请求大小,例如1 MB?
您应该能够
import bottle bottle.BaseRequest.MEMFILE_MAX = 1024 * 1024 # (or whatever you want)
这似乎是基于来源的唯一方法