在suds库中实现自定义认证(Python)

3 投票
1 回答
2674 浏览
提问于 2025-04-16 14:20

我需要访问一个SOAP服务器,这个服务器使用WSDL,并且需要通过发送两个参数来进行身份验证,分别是UserId和AccessToken。我尝试了以下方法:

token = UsernameToken(

UserId,

AccessToken

)

token.setnonce()

token.setcreated()

security = Security()
security.tokens.append(token)


client = Client(URL)
client.set_options(wsse=security)

但是suds抛出了这个错误

URLError: <urlopen error [Errno 8] nodename nor servname provided, or not known>

我该如何将这些参数添加到我的请求中?或者我是不是做错了什么?

1 个回答

1

如果这些参数应该是头部的一部分,你可以这样做:

header = client.factory.create('HeaderNameInWSDL')
header.UserId = 'foo'
header.AccessToken = 'bar%n3'
client.set_options(soapheaders=header)

然后你就可以继续你的操作了。

撰写回答