Django 2.0无法正确读取POST请求(来自Unity)

时间:2018-02-12 17:54:44

标签: python django http request

我在使用Python 3.5的Django应用程序中接收POST请求(不是来自Web表单,而是来自Unity应用程序)。我的目标是发送图像数据。我可以确认Unity正确生成图像,根据他们的文档,我正确地发送它。

POST请求命中我的本地服务器,但无论我如何构建Unity的请求,Django request.POSTrequest.FILES都是空的。但是,如果我将request.body读入.txt文件,我可以看到完全正常的请求:

--pGBzDSypIQO4aFVbs4sjTmbBN5OpW3Huawm0D0ib
Content-Disposition: file; name="drawing"; filename="drawing.png"
Content-Type: multipart/form-data

‰PNG
IHDR  ð  ð   :R¼    IDATxìØÁ     0±¶ûïœÐ1”  
// etc...

还尝试了其他标头或发送虚拟POST数据。即使是最简单的表单数据也无法填充request.POST

--hwlDqmtVKZ2EPkOJ7GuauDZNlYdE4nf4yNbGt9WR
Content-Disposition: form-data
Content-Type: text/plain; encoding=utf-8

a=b

这看起来格式不正确吗?无论我如何发送东西,据我所知,Django的request.POST没有填充。有什么建议?那些要求中的某些东西看起来不合适?知道Django如何请求需要以便可读?很想知道,谢谢!

1 个答案:

答案 0 :(得分:0)

好的,这已经解决了。我使用的是Python 3.5和Django测试服务器,错误地认为TensorFlow仅支持< = 3.5.x.当将应用程序移动到Heroku生产服务器(以查看它是否会有不同反应)时,我不得不烘焙一个requirements.txt文件,并且这样做我发现我确实可以使用最新的Python版本3.6.4。切换到该版本使Django测试服务器开始正确接收请求。我仍然需要一整套边界生成字符串构建代码,但它确实有效!