Urllib2 POST请求导致409冲突错误

时间:2013-04-25 11:55:39

标签: python django nginx urllib2 gunicorn

我通过Django的观点在http://pubsubhubbub.appspot.com致电google的pubsubhubbub发布商。我想使用它来获取所有youtube上传Feed。我正在使用urllib2.Request向它发送'post'请求,我得到409冲突错误。我已正确设置回调网址,如果我尝试使用:python manage shell发布相同的请求,则效果非常好。我使用nginx服务器作为生产服务器上gunicorn实例的代理。什么可能是错的。提前谢谢。

>>> response.request
<PreparedRequest [POST]>
>>> response.request.headers
{'Content-Length': u'303', 'Content-Type': 'application/x-www-form-urlencoded', 'Accept-Encoding': 'gzip, deflate, compress', 'Accept': '*/*', 'User-Agent': 'python-requests/1.2.0 CPython/2.6.6 Linux/2.6.18-308.8.2.el5.028stab101.3'}
>>> response.request.body
'hub.verify=sync&hub.topic=http%3A%2F%2Fgdata.youtube.com%2Ffeeds%2Fapi%2Fusers%2FUCVcFOpBmJqkQ4v6Bh6l1UuQ%2Fuploads%3Fv%3D2&hub.lease_seconds=2592000&hub.callback=http%3A%2F%2Fhypedsound.cloudshuffle.com%2Fhub%2F19%2F&hub.mode=subscribe&hub.verify_token=subscribe7367add7b116969a44e0489ad9da45ca8aea4605'

生成的两个请求的请求正文,标题都相同。

这是nginx配置文件: http://dpaste.org/bOwHO/

1 个答案:

答案 0 :(得分:0)

事实证明我使用的是TransactionMiddleware,它在调用model.save()时不会提交db,这会产生问题。