2013-04-25 59 views
0

我打电话给google的pubsubhubbub发布者,通过Django的视图在http://pubsubhubbub.appspot.com。我想使用它获取所有youtube上传Feed。我使用urllib2.Request向它发送'post'请求,并且我得到了409个冲突错误。我已经正确设置回调网址,并且如果我尝试使用以下内容发布相同的请求:python manage shell它工作得很好。我正在使用nginx服务器作为生产服务器上的gunicorn实例的代理。什么可能是错的。提前致谢。Urllib2 POST请求导致409冲突错误

>>> 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/

+0

您应该下载Wireshark(http://www.wireshark.org/)来检查两个不同呼叫发送/接收的数据包,看看它们有什么不同。 – Danack 2013-04-25 14:47:54

回答

0

原来我用TransactionMiddleware不承诺分贝时model.save()被调用,这是产生问题。