Странное поведение HTTP-аутентификации с библиотекой SOAP suds

У меня есть работающая программа на Python, которая получает большой объем данных через SOAP с использованием пены. Веб-служба реализована с функцией пейджинга, так что я могу захватить nnn строк с каждым вызовом выборки и захватить следующие nnn с последующими вызовами. Если я аутентифицируюсь на HTTP-сервере с помощью следующего кода

client = suds.client.Client(url=url, location=location, username=username, password=password, timeout=timeout)

, все работает отлично. Если, однако, я использую следующий

t = suds.transport.https.HttpAuthenticated(username=username, password=password)
t.handler = urllib2.HTTPBasicAuthHandler(t.pm)
t.urlopener = urllib2.build_opener(t.handler)
client = suds.client.Client(url=url, location=location, timeout=timeout, transport=t) 

, он работает ровно для 6 итераций. То есть, если я укажу предел выборки в 10 строк за выборку, я верну 60 строк. На седьмой выборке я получаю

  File "build/bdist.linux-i686/egg/suds/client.py", line 542, in __call__
  File "build/bdist.linux-i686/egg/suds/client.py", line 602, in invoke
  File "build/bdist.linux-i686/egg/suds/client.py", line 649, in send
  File "build/bdist.linux-i686/egg/suds/client.py", line 698, in failed
AttributeError: 'NoneType' object has no attribute 'read'

. Есть ли у кого-нибудь предложения относительно того, что могло быть причиной этого. Определенно это изменение является причиной проблемы. Я могу менять стили аутентификации туда-сюда, и это полностью воспроизводимо.

Я использую python 2.6.6 с пеной 0.4.

Спасибо

6
задан zenzic 5 March 2011 в 01:33
поделиться