Tôi đang cố gắng sử dụng SUDS và đang cố gắng tìm ra lý do tại sao tôi không thể xác thực để hoạt động (hoặc https).Python SUDS SOAP yêu cầu dịch vụ https 401
Dịch vụ tôi đang cố gắng truy cập vượt quá https với xác thực thông báo cơ bản. Dựa trên các lỗi, nó dường như đang sử dụng http thay vì https. Nhưng không thực sự chắc chắn những gì tôi đang mất tích. Bất kỳ đầu mối nào được đánh giá cao.
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()
gỡ lỗi Output:
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
đầu tiên cho tính đúng đắn ... Nên chỉ là 'tiêu hóa xác thực' không 'cơ bản tiêu hóa xác thực.' Các loại auth là: 'digest' và 'basic'. Vì vậy, tôi đã bối rối. – user9303