Запрос POST Urllib2 приводит к ошибке конфликта 409

Я звоню издателю Google pubsubhubbub по адресу http://pubsubhubbub.appspot.com через представление Django. Я хочу получить все каналы загрузки YouTube, используя его. Я отправляю ему запрос на «публикацию», используя urllib2.Request, и получаю ошибку конфликта 409. Я правильно настроил URL-адрес обратного вызова, и если я попытаюсь опубликовать тот же запрос, используя: python manage shell, он отлично работает. Я использую сервер nginx в качестве прокси для экземпляра пушки на рабочем сервере. Что может быть не так. Заранее спасибо.

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


person tejinderss    schedule 25.04.2013    source источник
comment
Вам следует скачать Wireshark (wireshark.org), чтобы проверить пакеты, которые отправляются/получаются для двух разных звонки, чтобы увидеть, что в них отличается.   -  person Danack    schedule 25.04.2013


Ответы (1)


Оказывается, я использовал TransactionMiddleware, который не фиксируется в db при вызове model.save(), что создавало проблему.

person tejinderss    schedule 29.04.2013