0
suds를 사용하여 파이썬으로 웹 서비스에 액세스하려고합니다. 메소드를 호출 할 때Suds - Exception : (401, u'Unauthorized ')
# WSDL fails to import schema, import this and create client.
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
imp.filter.add('http://api.daisycon.com/publisher/soap//program/')
d = ImportDoctor(imp)
encoded = base64.b64encode("%s:%s" % (username, password))
authenticationHeader = {
"SOAPAction" : "http://api.daisycon.com/publisher/soap//program/#getSubscriptions",
"Authorization" : "Basic %s" % encoded
}
client = suds.client.Client(self.url, headers = authenticationHeader, doctor=d)
그러나, 그것은 다음과 같은 오류가 발생합니다 :
No handlers could be found for logger "suds.client"
Traceback (most recent call last):
File "C:\Users\User\Documents\Crawler\src\Crawlers\Daisycon.py", line 39, in <module>
Crawler().main()
File "C:\Users\User\Documents\Crawler\src\Crawlers\Daisycon.py", line 37, in main
print client.service.getSubscriptions()
File "C:\Python27\Lib\site-packages\suds\client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "C:\Python27\Lib\site-packages\suds\client.py", line 602, in invoke
result = self.send(soapenv)
File "C:\Python27\Lib\site-packages\suds\client.py", line 649, in send
result = self.failed(binding, e)
File "C:\Python27\Lib\site-packages\suds\client.py", line 708, in failed
raise Exception((status, reason))
Exception: (401, u'Unauthorized')
내가 자격 증명 내가 웹에서 찾을 수있는 모든 방법을 추가하려고했습니다 여기 내 코드입니다. 아무것도 작동하지 않습니다. 나는 신임장이 옳다는 것을 100 % 확신합니다.
또 다른 방법은 내가 시도 :
No handlers could be found for logger "suds.client"
Traceback (most recent call last):
File "C:\Users\User\Documents\Crawler\src\Crawlers\Daisycon.py", line 35, in <module>
Crawler().main()
File "C:\Users\User\Documents\Crawler\src\Crawlers\Daisycon.py", line 33, in main
print client.service.getFeeds()
File "C:\Python27\Lib\site-packages\suds\client.py", line 542, in __call__
return client.invoke(args, kwargs)
File "C:\Python27\Lib\site-packages\suds\client.py", line 602, in invoke
result = self.send(soapenv)
File "C:\Python27\Lib\site-packages\suds\client.py", line 649, in send
result = self.failed(binding, e)
File "C:\Python27\Lib\site-packages\suds\client.py", line 702, in failed
r, p = binding.get_fault(reply)
File "C:\Python27\Lib\site-packages\suds\bindings\binding.py", line 265, in get_fault
raise WebFault(p, faultroot)
suds.WebFault: Server raised fault: 'Need authorisation'
두 번째 예에서와 같이 동일한 오류를 발생시킵니다
이 비누를 추가합니다. – SergioP
그리고 이런 식으로 행운을 빈다. (헤더 부분에 직접 l/p를 포함한다.)? : headers = { 'username': 'username', 'password': 'password'}. 또한 이것을 시도 할 수 있습니다 : client.set_options (headers = { 'username': 'username', 'password': 'password'}) –
또한 같은 오류를 발생시킵니다 – SergioP