【问题标题】:Django 2.0 not reading POST request correctly (from Unity)Django 2.0 未正确读取 POST 请求(来自 Unity)
【发布时间】:2018-07-22 23:37:17
【问题描述】:

我在使用 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 请求 需要 的外观以便可读吗?很想知道,谢谢!

【问题讨论】:

  • 对我来说也是正确的。您是否可以尝试使用 PostMan Chrome 扩展程序将数据发送到您的服务器并检查 request.POST 是否仍然没有填充?
  • 您对整个请求使用什么内容类型?它必须是multipart/form-data
  • 谢谢你们的建议! request.content_typemultipart/form-datarequest.methodPOST。然后在request.body 中,我可以将图像字段内容类型设置为该类型或image/png,但得到相同的结果。我已经发送了一些带有 Postman 的通用数据,应用程序认为这很好,并按预期将其转换为 QueryDict...
  • 还使用 Postman 将图像文件发送到 Django 服务器,并按预期将其提供到 request.POST 和 request.FILES 中的 QueryDict 中,但即使是最简单的 Unity 请求也会被绑定为原始字节[] 数据在他们的 request.body 对象中。它可能与从 Unity 发送的编码有关?仍在工作。
  • 抱歉垃圾邮件 cmets -- 这里是来自 requestbin 的 an image of the Unity request。看出什么不对了吗?

标签: python django http request


【解决方案1】:

好的,解决了。我使用的是 Python 3.5 和 Django 测试服务器,错误地认为 TensorFlow 只支持

【讨论】:

    猜你喜欢
    • 2018-09-30
    • 2016-10-17
    • 2017-03-20
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2019-02-18
    • 1970-01-01
    相关资源
    最近更新 更多