如何在没有数据的情况下让uwsgi接受POST请求?

时间:2014-11-18 04:25:05

标签: python python-2.7 post curl uwsgi

我有一个提供帖子请求的Web应用程序,并在没有给出数据或空数据时处理案例。手动运行应用程序时,它的行为正常。但是当通过uwsgi提供服务时,特定情况会失败,POST请求没有数据(空数据有效):

$ curl -X POST http://www.example.com/search
curl: (52) Empty reply from server
$ curl -d "" http://www.example.com/search 
[{...}]

我错过了任何可以修复此行为的uwsgi选项吗?如何让uwsgi将这些请求正确转发到我的Web应用程序?

1 个答案:

答案 0 :(得分:0)

正如@roberto所说,这是我的代码中的一个问题。我有这段代码:

当用户进行没有数据的帖子查询时,wheezy将尝试使用CONTENT_LENGTH这样的环境变量构建self.request.form,这里不存在并引发错误。不知何故,try / except对uwsgi不起作用,所以我改变了:

try:
    self.request.form
except:
    self.request.form = {}
    self.request.files = {}

如下:

if not self.request.environ.get('CONTENT_LENGTH', False):
   self.request.form = {}  
   self.request.files = {}

现在工作正常