【问题标题】:CherryPy How to Read Chunked Encoded Request BodyCherryPy 如何读取分块编码的请求正文
【发布时间】:2016-03-31 07:33:45
【问题描述】:
我尝试从具有 Transfer-Encoding: chunked 标头(没有 Content-Length)的 POST 正文中获取数据。内容类型为application/octet-stream。
我试过了
cherrypy.request.body.read()
但它冻结并返回 500
我也试过
buffer = cherrypy.request.body.read(1024)
但不知道何时停止阅读。
有人有建议吗?
【问题讨论】:
标签:
python
cherrypy
chunked-encoding
【解决方案1】:
这是我最终使用的代码。
def POST(self):
f = open('tmp','wb')
cherrypy.request.rfile.bufsize = 1024 * 1024 * 5 #adjust buffer size here
while True:
cherrypy.request.rfile._fetch(); #reading data
if cherrypy.request.rfile.closed: #end of stream checking
break
buffer = cherrypy.request.rfile.buffer #your data is here
cherrypy.request.rfile.buffer = "" #clearing buffer
f.write(buffer) #consume it
f.close()
return "done"