python – 可以开箱即用接收多部分/混合POST吗?
我们从一个只给我们多部分/混合编码的设备接收一些xml任意二进制文件(如图像和音频)的POST数据. 我为接收器端设置了一个cherrypy上传/ POST处理程序.我已经设法允许它使用multipart / form-data执行任意数量的参数.但是,当我们尝试发送多部分混合数据时,我们没有得到任何处理.
因此,在提交multipart / form-data时,args和kwargs定义得很好. 我的问题是,cherrypy是否有一个内置的处理程序来处理POST的多部分/混合和分块编码?或者我是否需要覆盖cherrypy.tools.process_request_body并滚动我自己的解码器? 似乎内置的wsgi服务器与cherrypy处理这是HTTP / 1.1规范的一部分,但我似乎无法在cherrypy中找到访问此功能的文档. …澄清 我使用的是Cherrypy的3.1.1左右的最新版本. 制作默认表单只涉及在upload函数中创建参数. 对于multipart / form-data,我一直在调用curl -F param1 = @ file1.jpg -F param2 = sometext -F param3 =@file3.wav http://destination:port/upload 在那个例子中,我得到:
在尝试提交multipart / mixed时,我尝试查看request.body,但不管设置正文处理,都继续获取None. 我们得到的输入是这样的:
我有一种潜在的怀疑,即multipart / mixed是cherrypy给我的只是rfile的问题.我们的目标是在接收方进行最少的处理(即,让樱桃做它的魔力)将身体进行樱桃加工.如果这需要我们对发送格式更难以成为一种樱桃喜欢的内容类型,那就这样吧.什么是可接受的格式?它只是multipart / form-data? 最佳答案
我的错.每当Content-Type的类型为“multipart / *”时,CP就会尝试将内容粘贴到request.params中(如果有任何其他Content-Type,它会进入request.body).
遗憾的是,CP假设任何多部分消息都是表单数据,并且没有为其他子类型提供任何规定.我刚刚在trunk中修复了它,它应该在3.1.2中发布.抱歉给你带来不便.在短期内,您可以尝试在本地应用变更集;见http://www.cherrypy.org/ticket/890. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |