启用Windows身份验证的Python Web服务调用

0 投票
1 回答
1449 浏览
提问于 2025-04-18 03:55

我对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(...)。抱歉,我这个问题有点初级。

撰写回答