SUDS kullanmaya çalışıyorum ve neden işe kimlik doğrulaması yapamadığımı anlamaya çalışıyorum (veya https).Python SUDS SOAP isteği https hizmetine 401
Erişmeye çalıştığım hizmet, https üzerinden temel özet kimlik doğrulamasıdır. Hata ayıklamalarına dayanarak, https yerine http kullanılıyormuş gibi görünüyor. Ama ne eksik olduğumdan emin değilim. Herhangi bir ipucu takdir edilir.
from suds.client import Client
from suds.transport.http import HttpAuthenticated
import logging
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('suds.client').setLevel(logging.DEBUG)
logging.getLogger('suds.transport').setLevel(logging.DEBUG)
logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG)
logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
def main():
url = 'https://blah.com/soap/sp/Services?wsdl'
credentials = dict(username='xxxx', password='xxxx')
t = HttpAuthenticated(**credentials)
client = Client(url, location='https://blah.com/soap/sp/Services', transport=t)
print client.last_sent()
if __name__=="__main__":
main()
ayıklama Çıkış:
DEBUG:suds.wsdl:reading wsdl at: https://blah.com/soap/sp/Services?wsdl ... DEBUG:suds.transport.http:opening (https://blah.com/soap/sp/Services?wsdl)
snip ...
File "C:\Python27\Lib\site-packages\suds-0.4-py2.7\suds\reader.py", line 95, in download
fp = self.options.transport.open(Request(url))File "C:\Python27\Lib\site-packages\suds-0.4-py2.7\suds\transport\http.py", line 173, in open
return HttpTransport.open(self, request)File "C:\Python27\Lib\site-packages\suds-0.4-py2.7\suds\transport\http.py", line 64, in open
raise TransportError(str(e), e.code, e.fp)suds.transport.TransportError: HTTP Error 401: Authorization Required
İlk ... Sadece olmayacak 'Özet kimlik doğrulaması' olmalıdır 'kimlik temel sindiremez.' Auth türleri şunlardır: 'digest' ve 'basic.' Bu yüzden kafam karıştı. – user9303