如何在类似于SOAPUI的python zeep上创建SOAP请求

2024-04-27 22:21:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python中的zeep模块发送SOAP请求,代码如下:

import datetime
from zeep import Client
from zeep.wsse.username import UsernameToken
from zeep.wsse.utils import WSU

timestamp_token = WSU.Timestamp()
today_datetime = datetime.datetime.today()
expires_datetime = today_datetime + datetime.timedelta(minutes=10)
timestamp_elements = [
    WSU.Created(today_datetime.strftime("%Y-%m-%dT%H:%M:%SZ")),
    WSU.Expires(expires_datetime.strftime("%Y-%m-%dT%H:%M:%SZ"))
]
timestamp_token.extend(timestamp_elements)
user_name_token = UsernameToken('0033', '0033', timestamp_token=timestamp_token)
client = Client(
    'soap?wsdl', wsse=user_name_token
)

获取时间错误

在日志中查看我的请求:

<soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"><wsa:Action>http://www.bpc.ru/apigate/creditCardEcommerce</wsa:Action><wsa:MessageID>uuid:46f58111-1c2b-41c1-b3cb-5c6bebe4ca51</wsa:MessageID><wsa:To>/soap</wsa:To></soapenv:Header>

如何更改此请求

<soapenv:Header xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"><wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-13AB70F1AB3FD986D016081112211868"><wsse:Username>0033</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">0033</wsse:Password><wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">3bD7cZMh692y/mJmLiLqQw==</wsse:Nonce><wsu:Created>2020-12-16T09:33:41.186Z</wsu:Created></wsse:UsernameToken></wsse:Security><wsa:Action>http://www.bpc.ru/apigate/creditCardEcommerce</wsa:Action><wsa:MessageID>uuid:c51cdd2c-5f8c-44bc-9d00-1fd46c3dd11c</wsa:MessageID><wsa:To>/soap</wsa:To></soapenv:Header>

Tags: orgimporttokenhttptodaydatetimetimestampzeep