我有一个接收SOAP请求的Django视图,我返回一个SOAP响应(content_type =' text / xml')
发送请求的客户端(ORACLE OSB)向我发送SOAP信封但由于某种原因,当我使用Django Test Server收到此请求时,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错误。
摆脱这种情况的最佳方法是什么?
答案 0 :(得分:1)
这解决了我的问题:
最后按照此SO主题解决其余问题:Processing chunked encoded HTTP POST requests in python (or generic CGI under apache)
(重新加载Apaches配置并重新启动Apache。)