使用Python Zeep模块创建和发送信封
我正在尝试使用Python Zeep发送肥皂请求。
这是我的代码:
from zeep import Client
url = 'localhost:8081/ws/?wsdl'
def get_data():
client = Client(url)
itSystem = '0000000'
MessageId = '00000000-0000-0000-0000-00000000'
RequestMessage = 'test'
mf = client.service.Send(itSystem, MessageId)
print(mf)
使用print(client.wsdl.dump())
显示以下内容:
Prefixes:
xsd: http://www.w3.org/2001/XMLSchema
ns0: urn://x-artefacts-smev-gov-ru/services/service-adapter/types/faults
ns1: urn://x-artefacts-smev-gov-ru/services/service-adapter/types
Global elements:
ns0:SyncFault(ns0:SyncFault)
ns0:SystemFault(ns0:SystemFault)
ns0:ValidationFault(ns0:ValidationFault)
ns1:AttachmentHeaderList(AttachmentHeader: ns1:AttachmentHeaderType[])
ns1:BusinessProcessMetadata(ns1:BusinessProcessMetadata)
ns1:ClientMessage(ns1:ClientMessage)
ns1:ErrorMessage(ns1:ErrorMessage)
ns1:FindMessageQuery(ns1:FindMessageQuery)
ns1:Message(ns1:Message)
ns1:MessagePrimaryContent(_value_1: ANY)
ns1:MessageQuery(ns1:MessageQuery)
ns1:MessageResult(itSystem: xsd:string, MessageId: xsd:string)
ns1:PersonalSignature(ns1:XMLDSigSignatureType)
ns1:QueryMessage(ns1:QueryMessageType)
ns1:QueryResult(ns1:AdapterMessage)
ns1:QueryResultList(QueryResult: ns1:AdapterMessage[])
ns1:RequestContent(ns1:RequestContentType)
ns1:RequestMessage(ns1:RequestMessageType)
ns1:RequestMetadata(ns1:RequestMetadataType)
ns1:ResponseContent(ns1:ResponseContentType)
ns1:ResponseMessage(ns1:ResponseMessageType)
ns1:ResponseMetadata(ns1:ResponseMetadataType)
ns1:StatusMessage(ns1:StatusMessage)
ns1:SyncRequest(ns1:SyncRequest)
ns1:SyncResponse(ns1:SyncResponse)
ns1:itSystem(xsd:string)
ns1:smevMetadata(ns1:SmevMetadata)
Global types:
xsd:anyType
xsd:ENTITIES
xsd:ENTITY
xsd:ID
xsd:IDREF
xsd:IDREFS
xsd:NCName
xsd:NMTOKEN
xsd:NMTOKENS
xsd:NOTATION
xsd:Name
xsd:QName
xsd:anySimpleType
xsd:anyURI
xsd:base64Binary
xsd:boolean
xsd:byte
xsd:date
xsd:dateTime
xsd:decimal
xsd:double
xsd:duration
xsd:float
xsd:gDay
xsd:gMonth
xsd:gMonthDay
xsd:gYear
xsd:gYearMonth
xsd:hexBinary
xsd:int
xsd:integer
xsd:language
xsd:long
xsd:negativeInteger
xsd:nonNegativeInteger
xsd:nonPositiveInteger
xsd:normalizedString
xsd:positiveInteger
xsd:short
xsd:string
xsd:time
xsd:token
xsd:unsignedByte
xsd:unsignedInt
xsd:unsignedLong
xsd:unsignedShort
ns0:Fault(code: xsd:string, description: xsd:string)
ns0:SyncFault(code: xsd:string, description: xsd:string)
ns0:SystemFault(code: xsd:string, description: xsd:string)
ns0:ValidationFault(code: xsd:string, description: xsd:string)
ns1:AdapterMessage(smevMetadata: ns1:SmevMetadata, Message: ns1:Message)
ns1:ArchiveType(File: ns1:FileType[])
ns1:AttachmentHeaderType(Id: xsd:string, filePath: xsd:string, passportId: xsd:string, SignaturePKCS7: xsd:base64Binary, TransferMethod: xsd:string, ReusableAttachment: xsd:boolean, Archive: ns1:ArchiveType)
ns1:BusinessProcessMetadata(_value_1: ANY[])
ns1:ClientIdCriteria
ns1:ClientMessage(itSystem: xsd:string, replyToQueue: xsd:string, RequestMessage: ns1:RequestMessageType, ResponseMessage: ns1:ResponseMessageType, QueryMessage: ns1:QueryMessageType)
ns1:Content(MessagePrimaryContent: ns1:MessagePrimaryContent, PersonalSignature: ns1:XMLDSigSignatureType, AttachmentHeaderList: ns1:AttachmentHeaderList)
ns1:CreateGroupIdentity(FRGUServiceCode: xsd:string, FRGUServiceDescription: xsd:string, FRGUServiceRecipientDescription: xsd:string)
ns1:DynamicRoutingType(DynamicValue: xsd:string[])
ns1:ErrorMessage(messageType: xsd:string, statusMetadata: ns1:StatusMetadataType, status: xsd:string, details: xsd:string, timestamp: xsd:dateTime, type: xsd:string, fault: ns0:Fault)
ns1:ErrorType
ns1:FileType(name: xsd:string, passportId: xsd:string)
ns1:FindMessageQuery(itSystem: xsd:string, specificQuery: ns1:FindTypeCriteria)
ns1:FindTypeCriteria(messagePeriodCriteria: ns1:MessageIntervalCriteria, messageClientIdCriteria: ns1:MessageClientIdCriteria, MessageCountToReturn: xsd:int, MessageOffset: xsd:int)
ns1:IdentifierRoutingType(IdentifierValue: xsd:string[])
ns1:LinkedGroupIdentity(refClientId: xsd:string, refGroupId: xsd:string)
ns1:Message(messageType: xsd:string)
ns1:MessageClientIdCriteria(clientId: xsd:string, clientIdCriteria: xsd:string)
ns1:MessageIntervalCriteria(from: xsd:dateTime, to: xsd:dateTime)
ns1:MessageQuery(itSystem: xsd:string, nodeId: xsd:string, routerExtraQueue: xsd:string, specificQuery: ns1:QueryTypeCriteria)
ns1:Metadata(clientId: xsd:string)
ns1:QueryMessageType(messageType: xsd:string, clientId: xsd:string, nodeId: xsd:string, queryType: xsd:string, queryFilter: xsd:string, queryRootTag: xsd:string)
ns1:QueryTypeCriteria(messageTypeCriteria: xsd:string)
ns1:RegistryRecordRoutingType(RecordId: xsd:int, UseGeneralRouting: xsd:boolean, DynamicRouting: ns1:DynamicRoutingType, IdentifierRouting: ns1:IdentifierRoutingType)
ns1:RegistryRoutingType(RegistryRecordRouting: ns1:RegistryRecordRoutingType[])
ns1:Reject(code: xsd:string, description: xsd:string)
ns1:RejectCode
ns1:RequestContentType(content: ns1:Content, originalContent: xsd:string)
ns1:RequestMessageType(messageType: xsd:string, RequestMetadata: ns1:RequestMetadataType, RequestContent: ns1:RequestContentType)
ns1:RequestMetadataType(clientId: xsd:string, linkedGroupIdentity: ns1:LinkedGroupIdentity, createGroupIdentity: ns1:CreateGroupIdentity, nodeId: xsd:string, eol: xsd:dateTime, testMessage: xsd:boolean, TransactionCode: xsd:string, BusinessProcessMetadata: ns1:BusinessProcessMetadata, RoutingInformation: ns1:RoutingInformationType)
ns1:ResponseContentType(content: ns1:Content, rejects: ns1:Reject[], status: ns1:Status, originalContent: xsd:string)
ns1:ResponseMessageType(messageType: xsd:string, ResponseMetadata: ns1:ResponseMetadataType, ResponseContent: ns1:ResponseContentType)
ns1:ResponseMetadataType(clientId: xsd:string, replyToClientId: xsd:string, replyTo: xsd:string)
ns1:RoutingInformationType(DynamicRouting: ns1:DynamicRoutingType, IdentifierRouting: ns1:IdentifierRoutingType, RegistryRouting: ns1:RegistryRoutingType)
ns1:SmevMetadata(MessageId: xsd:string, ReferenceMessageID: xsd:string, TransactionCode: xsd:string, OriginalMessageID: xsd:string, Sender: xsd:string, Recipient: xsd:string, ReplyTo: xsd:string, SendingDate: xsd:dateTime)
ns1:Status(code: xsd:string, description: xsd:string, parameter: {key: xsd:string, value: xsd:string}[])
ns1:StatusMessage(messageType: xsd:string, statusMetadata: ns1:StatusMetadataType, status: xsd:string, details: xsd:string, timestamp: xsd:dateTime)
ns1:StatusMessageCategory
ns1:StatusMetadataType(clientId: xsd:string, originalClientId: xsd:string)
ns1:SyncRequest(itSystem: xsd:string, RequestMessage: ns1:RequestMessageType)
ns1:SyncResponse(smevMetadata: ns1:SmevMetadata, Message: ns1:Message)
ns1:TransferMethodType
ns1:TypeCriteria
ns1:XMLDSigSignatureType(_value_1: ANY)
Bindings:
Soap11Binding: {urn://x-artefacts-smev-gov-ru/services/service-adapter}SMEVServiceAdapterEndpointBinding
Service: SMEVServiceAdapterService
Port: SMEVServiceAdapterEndpoint (Soap11Binding: {urn://x-artefacts-smev-gov-ru/services/service-adapter}SMEVServiceAdapterEndpointBinding)
Operations:
Find(itSystem: xsd:string, specificQuery: ns1:FindTypeCriteria) -> QueryResult: ns1:AdapterMessage[]
Get(itSystem: xsd:string, nodeId: xsd:string, routerExtraQueue: xsd:string, specificQuery: ns1:QueryTypeCriteria) -> smevMetadata: ns1:SmevMetadata, Message: ns1:Message
Send(itSystem: xsd:string, replyToQueue: xsd:string, RequestMessage: ns1:RequestMessageType, ResponseMessage: ns1:ResponseMessageType, QueryMessage: ns1:QueryMessageType) -> itSystem: xsd:string, MessageId: xsd:string
我知道我还应该放置requestMessage
,queryMessage
,但是我不确定我应该把它放在哪里。
I'm trying to send SOAP request with Python Zeep.
Here is my code:
from zeep import Client
url = 'localhost:8081/ws/?wsdl'
def get_data():
client = Client(url)
itSystem = '0000000'
MessageId = '00000000-0000-0000-0000-00000000'
RequestMessage = 'test'
mf = client.service.Send(itSystem, MessageId)
print(mf)
Using print(client.wsdl.dump())
shows the following:
Prefixes:
xsd: http://www.w3.org/2001/XMLSchema
ns0: urn://x-artefacts-smev-gov-ru/services/service-adapter/types/faults
ns1: urn://x-artefacts-smev-gov-ru/services/service-adapter/types
Global elements:
ns0:SyncFault(ns0:SyncFault)
ns0:SystemFault(ns0:SystemFault)
ns0:ValidationFault(ns0:ValidationFault)
ns1:AttachmentHeaderList(AttachmentHeader: ns1:AttachmentHeaderType[])
ns1:BusinessProcessMetadata(ns1:BusinessProcessMetadata)
ns1:ClientMessage(ns1:ClientMessage)
ns1:ErrorMessage(ns1:ErrorMessage)
ns1:FindMessageQuery(ns1:FindMessageQuery)
ns1:Message(ns1:Message)
ns1:MessagePrimaryContent(_value_1: ANY)
ns1:MessageQuery(ns1:MessageQuery)
ns1:MessageResult(itSystem: xsd:string, MessageId: xsd:string)
ns1:PersonalSignature(ns1:XMLDSigSignatureType)
ns1:QueryMessage(ns1:QueryMessageType)
ns1:QueryResult(ns1:AdapterMessage)
ns1:QueryResultList(QueryResult: ns1:AdapterMessage[])
ns1:RequestContent(ns1:RequestContentType)
ns1:RequestMessage(ns1:RequestMessageType)
ns1:RequestMetadata(ns1:RequestMetadataType)
ns1:ResponseContent(ns1:ResponseContentType)
ns1:ResponseMessage(ns1:ResponseMessageType)
ns1:ResponseMetadata(ns1:ResponseMetadataType)
ns1:StatusMessage(ns1:StatusMessage)
ns1:SyncRequest(ns1:SyncRequest)
ns1:SyncResponse(ns1:SyncResponse)
ns1:itSystem(xsd:string)
ns1:smevMetadata(ns1:SmevMetadata)
Global types:
xsd:anyType
xsd:ENTITIES
xsd:ENTITY
xsd:ID
xsd:IDREF
xsd:IDREFS
xsd:NCName
xsd:NMTOKEN
xsd:NMTOKENS
xsd:NOTATION
xsd:Name
xsd:QName
xsd:anySimpleType
xsd:anyURI
xsd:base64Binary
xsd:boolean
xsd:byte
xsd:date
xsd:dateTime
xsd:decimal
xsd:double
xsd:duration
xsd:float
xsd:gDay
xsd:gMonth
xsd:gMonthDay
xsd:gYear
xsd:gYearMonth
xsd:hexBinary
xsd:int
xsd:integer
xsd:language
xsd:long
xsd:negativeInteger
xsd:nonNegativeInteger
xsd:nonPositiveInteger
xsd:normalizedString
xsd:positiveInteger
xsd:short
xsd:string
xsd:time
xsd:token
xsd:unsignedByte
xsd:unsignedInt
xsd:unsignedLong
xsd:unsignedShort
ns0:Fault(code: xsd:string, description: xsd:string)
ns0:SyncFault(code: xsd:string, description: xsd:string)
ns0:SystemFault(code: xsd:string, description: xsd:string)
ns0:ValidationFault(code: xsd:string, description: xsd:string)
ns1:AdapterMessage(smevMetadata: ns1:SmevMetadata, Message: ns1:Message)
ns1:ArchiveType(File: ns1:FileType[])
ns1:AttachmentHeaderType(Id: xsd:string, filePath: xsd:string, passportId: xsd:string, SignaturePKCS7: xsd:base64Binary, TransferMethod: xsd:string, ReusableAttachment: xsd:boolean, Archive: ns1:ArchiveType)
ns1:BusinessProcessMetadata(_value_1: ANY[])
ns1:ClientIdCriteria
ns1:ClientMessage(itSystem: xsd:string, replyToQueue: xsd:string, RequestMessage: ns1:RequestMessageType, ResponseMessage: ns1:ResponseMessageType, QueryMessage: ns1:QueryMessageType)
ns1:Content(MessagePrimaryContent: ns1:MessagePrimaryContent, PersonalSignature: ns1:XMLDSigSignatureType, AttachmentHeaderList: ns1:AttachmentHeaderList)
ns1:CreateGroupIdentity(FRGUServiceCode: xsd:string, FRGUServiceDescription: xsd:string, FRGUServiceRecipientDescription: xsd:string)
ns1:DynamicRoutingType(DynamicValue: xsd:string[])
ns1:ErrorMessage(messageType: xsd:string, statusMetadata: ns1:StatusMetadataType, status: xsd:string, details: xsd:string, timestamp: xsd:dateTime, type: xsd:string, fault: ns0:Fault)
ns1:ErrorType
ns1:FileType(name: xsd:string, passportId: xsd:string)
ns1:FindMessageQuery(itSystem: xsd:string, specificQuery: ns1:FindTypeCriteria)
ns1:FindTypeCriteria(messagePeriodCriteria: ns1:MessageIntervalCriteria, messageClientIdCriteria: ns1:MessageClientIdCriteria, MessageCountToReturn: xsd:int, MessageOffset: xsd:int)
ns1:IdentifierRoutingType(IdentifierValue: xsd:string[])
ns1:LinkedGroupIdentity(refClientId: xsd:string, refGroupId: xsd:string)
ns1:Message(messageType: xsd:string)
ns1:MessageClientIdCriteria(clientId: xsd:string, clientIdCriteria: xsd:string)
ns1:MessageIntervalCriteria(from: xsd:dateTime, to: xsd:dateTime)
ns1:MessageQuery(itSystem: xsd:string, nodeId: xsd:string, routerExtraQueue: xsd:string, specificQuery: ns1:QueryTypeCriteria)
ns1:Metadata(clientId: xsd:string)
ns1:QueryMessageType(messageType: xsd:string, clientId: xsd:string, nodeId: xsd:string, queryType: xsd:string, queryFilter: xsd:string, queryRootTag: xsd:string)
ns1:QueryTypeCriteria(messageTypeCriteria: xsd:string)
ns1:RegistryRecordRoutingType(RecordId: xsd:int, UseGeneralRouting: xsd:boolean, DynamicRouting: ns1:DynamicRoutingType, IdentifierRouting: ns1:IdentifierRoutingType)
ns1:RegistryRoutingType(RegistryRecordRouting: ns1:RegistryRecordRoutingType[])
ns1:Reject(code: xsd:string, description: xsd:string)
ns1:RejectCode
ns1:RequestContentType(content: ns1:Content, originalContent: xsd:string)
ns1:RequestMessageType(messageType: xsd:string, RequestMetadata: ns1:RequestMetadataType, RequestContent: ns1:RequestContentType)
ns1:RequestMetadataType(clientId: xsd:string, linkedGroupIdentity: ns1:LinkedGroupIdentity, createGroupIdentity: ns1:CreateGroupIdentity, nodeId: xsd:string, eol: xsd:dateTime, testMessage: xsd:boolean, TransactionCode: xsd:string, BusinessProcessMetadata: ns1:BusinessProcessMetadata, RoutingInformation: ns1:RoutingInformationType)
ns1:ResponseContentType(content: ns1:Content, rejects: ns1:Reject[], status: ns1:Status, originalContent: xsd:string)
ns1:ResponseMessageType(messageType: xsd:string, ResponseMetadata: ns1:ResponseMetadataType, ResponseContent: ns1:ResponseContentType)
ns1:ResponseMetadataType(clientId: xsd:string, replyToClientId: xsd:string, replyTo: xsd:string)
ns1:RoutingInformationType(DynamicRouting: ns1:DynamicRoutingType, IdentifierRouting: ns1:IdentifierRoutingType, RegistryRouting: ns1:RegistryRoutingType)
ns1:SmevMetadata(MessageId: xsd:string, ReferenceMessageID: xsd:string, TransactionCode: xsd:string, OriginalMessageID: xsd:string, Sender: xsd:string, Recipient: xsd:string, ReplyTo: xsd:string, SendingDate: xsd:dateTime)
ns1:Status(code: xsd:string, description: xsd:string, parameter: {key: xsd:string, value: xsd:string}[])
ns1:StatusMessage(messageType: xsd:string, statusMetadata: ns1:StatusMetadataType, status: xsd:string, details: xsd:string, timestamp: xsd:dateTime)
ns1:StatusMessageCategory
ns1:StatusMetadataType(clientId: xsd:string, originalClientId: xsd:string)
ns1:SyncRequest(itSystem: xsd:string, RequestMessage: ns1:RequestMessageType)
ns1:SyncResponse(smevMetadata: ns1:SmevMetadata, Message: ns1:Message)
ns1:TransferMethodType
ns1:TypeCriteria
ns1:XMLDSigSignatureType(_value_1: ANY)
Bindings:
Soap11Binding: {urn://x-artefacts-smev-gov-ru/services/service-adapter}SMEVServiceAdapterEndpointBinding
Service: SMEVServiceAdapterService
Port: SMEVServiceAdapterEndpoint (Soap11Binding: {urn://x-artefacts-smev-gov-ru/services/service-adapter}SMEVServiceAdapterEndpointBinding)
Operations:
Find(itSystem: xsd:string, specificQuery: ns1:FindTypeCriteria) -> QueryResult: ns1:AdapterMessage[]
Get(itSystem: xsd:string, nodeId: xsd:string, routerExtraQueue: xsd:string, specificQuery: ns1:QueryTypeCriteria) -> smevMetadata: ns1:SmevMetadata, Message: ns1:Message
Send(itSystem: xsd:string, replyToQueue: xsd:string, RequestMessage: ns1:RequestMessageType, ResponseMessage: ns1:ResponseMessageType, QueryMessage: ns1:QueryMessageType) -> itSystem: xsd:string, MessageId: xsd:string
I know that I should also put RequestMessage
, QueryMessage
, but I am not sure where should I put it.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我看到您正在使用
发送
操作。该方法具有此签名:您需要为这些方法参数创建对象,就像前两个参数一样。
这些参数具有类型。例如,如果您查看
requestMessage
,则其类型定义为:这基本上像是接收这些参数以创建此类型对象的构造函数。创建它的方式是在Zeep文档中解释了。您要么使用
client.get_type('ns1:requestMessAgeType')
来构建对象,要么可以使用字典(这两者都在该文档页面上的示例中进行了说明)。I see you are using the
Send
operation. That method has this signature:You need to create objects for those method parameters, just like you did with the first two parameters.
Those parameters have a type. If you look at
RequestMessage
for example, it's type is defined as:This basically acts like a constructor that receives those parameters in order to create an object of this type. The way you create it is explained in the Zeep documentation. You will either use
client.get_type('ns1:RequestMessageType')
to build objects, or you might use a dictionary (both explained in the example on that documentation page).