【发布时间】:2015-01-29 02:20:29
【问题描述】:
我有一个接收 SOAP 请求的 Django 视图并返回一个 SOAP 响应 (content_type='text/xml')
发送请求的客户端(ORACLE OSB)向我发送了一个 SOAP 信封,但由于某种原因,当我使用 Django 测试服务器收到此请求时,request.body 为空。
我记录了请求对象并将其粘贴在http://dpaste.com/0XD485E 我注意到的是 CONTENT_LENGTH 没有价值。
我在 HTTP 1.1 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4 中读到了这一点,它说
"如果收到带有 Transfer-Encoding 标头字段的消息 和 Content-Length 头字段,后者必须被忽略。”
RFC 也提到了
“所有接收实体的 HTTP/1.1 应用程序必须接受 “分块”传输编码(第 3.6 节),因此允许这种机制 用于无法确定消息长度时的消息 提前。”
我也尝试过使用 Apache,但 Apache/mod_wsgi 甚至没有让请求进入 Django 视图,而是返回了 HTTP 411 错误。
摆脱这种情况的最佳方法是什么?
【问题讨论】:
标签: django apache web-services http-headers mod-wsgi