当前位置:  开发笔记 > 编程语言 > 正文

在python中处理分块编码的HTTP POST请求(或在apache下处理通用CGI)

如何解决《在python中处理分块编码的HTTPPOST请求(或在apache下处理通用CGI)》经验,为你挑选了1个好方法。

我有一个j2me客户端会将一些分块编码数据发布到网络服务器.我想在python中处理数据.该脚本作为CGI运行,但显然apache会拒绝对CGI脚本进行分块编码的post请求.据我所知,mod_python,WSGI和FastCGI也没有.

我想知道是否有办法让python脚本处理这种输入.我对任何建议都持开放态度(例如apache2中的混淆设置可以组装块,一个独立的python服务器也可以做同样的事情等等.)我做了很多google搜索并没有找到任何可用的东西,这是很奇怪.

我知道在服务器端使用java将是一个解决方案,但我无法想象用apache + python无法解决这个问题.



1> Nathan de Vr..:

一年前我遇到了一个完全相同的问题,一个J2ME客户端与Python/Ruby后端交谈.我发现的唯一的解决方案,它要求应用程序或基础设施水平的变化是使用的mod_proxy相对未知的功能.

Mod_proxy能够缓冲传入(分块)请求,然后在将它们传递给代理后端之前将它们重写为具有Content-Length头的单个请求.巧妙的诀窍是,您可以创建一个微小的代理配置,将请求传递回同一个Apache服务器.即在端口80上获取传入的chunked请求,"dechunk"它,然后将其传递到端口81上的非HTTP 1.1兼容服务器.

我在生产中使用这种配置一年多没有问题.它看起来像这样:

ProxyRequests Off


  Order deny,allow
  Allow from all



  SetEnv proxy-sendcl 1
  ProxyPass / http://example.com:81/
  ProxyPassReverse / http://example.com:81/
  ProxyPreserveHost On
  ProxyVia Full

  
    Order deny,allow
    Allow from all
  



Listen 81


  ServerName example.com
  # Your Python application configuration goes here

我还在我的博客上详细介绍了问题和我的解决方案.

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有