2013-04-25 82 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()被調用,這是產生問題。