【问题标题】: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"
    

    【讨论】:

    • 感谢您发布解决方案 :)
    猜你喜欢
    • 2021-10-21
    • 2010-09-09
    • 2011-03-18
    • 2011-09-06
    • 1970-01-01
    • 2020-09-17
    • 2018-05-27
    • 1970-01-01
    • 2014-10-19
    相关资源
    最近更新 更多