启用Windows身份验证的Python Web服务调用
我对Python还不太熟悉,但现在我需要为我的网络服务调用写一段示例代码(使用Python 2.7)。这段代码看起来是可以工作的,但当我在IIS上为这个网页应用开启“Windows身份验证”后,它就不再工作了。我使用了SUDS库。请帮我添加身份验证信息,以便能够调用我的网络服务。提前谢谢你!
import suds
import urllib2
import logging
from suds.transport.http import HttpAuthenticated
from suds.client import Client
##*************************************************************************
wsdlloc = 'http://myserver.com/myWebService.asmx'
wsdlurl = wsdlloc+'?wsdl'
login="test"
pwd="test123"
##*************************************************************************
if True:
logging.basicConfig(level=logging.DEBUG)
logging.getLogger('suds').setLevel(logging.DEBUG)
##-------------------
##--- IT IS WORKING WHEN NO WINDOWS AUTHENTICATION IS NEEDED
if False:
c = Client(url=wsdlurl)
list = c.service.myFunc("2014-05-08","2014-05-28")
print( list )
##--- IT GENERATES "suds.transport.TransportError: HTTP Error 401: Unauthorized"
if True:
trnsport = suds.transport.http.HttpAuthenticated(username=login, password=pwd)
client = Client(url=wsdlurl, username=login, password=pwd, transport=trnsport)
list = client.service.myFunc("2014-05-08","2014-05-28")
print( list )
1 个回答
1
要使用WindowsHttpAuthenticated(..),而不是HttpAuthenticated(...)。抱歉,我这个问题有点初级。