У меня есть работающая программа на 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.
Спасибо