SUDS를 사용하려고하는데 왜 인증 (또는 https)을받을 수 없는지 파악하려고 노력했습니다.Python SUDS https 서비스 401에 대한 SOAP 요청
액세스하려는 서비스가 기본 다이제스트 인증을 사용하는 https를 초과합니다. 디버그를 기반으로 https 대신 http를 사용하는 것으로 보입니다. 그러나 내가 무엇을 놓치고 있는지 정말로 알지 않는다. 어떤 단서가 인정됩니다.
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()
디버그 출력 :
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
먼저 ... 그냥하지 '인증 소화'해야한다 '인증을 기본 소화를.' 승인 유형은 '다이제스트'및 '기본'입니다. 그래서 혼란 스러웠습니다. – user9303