有奖捉虫:行业应用 & 管理与支持文档专题 HOT

简介

SOAP(简单对象访问协议:Simple Object Access Protocol)是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换,用于访问网络服务。SOAP 提供一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。
SOAP = HTTP + XML,本质即遵守 SOAP 编码规则的 HTTP 请求/响应。一条 SOAP 消息即为遵循 SOAP 协议规则的 XML 文档。主要包含下列元素:
必需的 Envelope 元素,用于把此 XML 文档标识为一条 SOAP 消息。
可选的 Header 元素,包含头部信息。如果 Header 元素被提供,则它必须是 Envelope 元素的第一个子元素。
必需的 Body 元素,包含所有的调用和响应信息。
可选的 Fault 元素,提供有关在处理此消息所发生错误的信息。
WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。WSDL 是一种使用 XML 编写的文档,该文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
SOAP 连接器即基于 SOAP 协议规则向 Web Services 发送请求的连接器。

连接器配置

通用配置
高级配置
参数
数据类型
描述
是否必填
默认值
WSDL Location
string
Web 服务的 WSDL URL 链接
-
WSDL 文件
string
Web 服务的 WSDL 文件
-
使用 WSDL URL
bool
是否使用 WSDL URL 链接进行分析
true
Service
string
Web 服务的 serviceName,通过 WSDL 文件获取
-
Port
string
Web 服务的 portName,通过 WSDL 文件获取
-
协议版本
enum
SOAP 协议版本:soap1.1、soap1.2
soap1.1
编码方式
string
SOAP Message 编码方式:UTF-8、UTF-16、ASCII、ISO-8859-1
UTF-8
请求超时时间(秒)
int
SOAP请求超时时间(秒)(范围:0~300)
60(s)
参数
数据类型
描述
是否必填
默认值
缓存过期时间(秒)
int
WSDL 文件缓存过期时间
90(s)
连接器配置界面如下:




操作配置

SOAP 请求操作如下:

输入参数

参数
数据类型
描述
是否必填
默认值
接口名称
string
请求 operation
-
请求体
string
SOAP Message body,只支持表达式输入
-
请求头
string
SOAP Message headers,只支持表达式输入
-
Web Service Security 使能
bool
是否通过可视化输入参数增加 Web Service Security 身份认证请求头
false
WsseMustUnderstand 属性
bool
请求接收者是否必须认可该请求头
true
UsernameTokenId 属性
string
Web Service Security 身份认证请求头 wsse:UsernameToken wsu:Id 属性值
-
用户名
string
Web Service Security身份认证请求头 wsse:Username 属性值
-
密码
string
Web Service Security身份认证请求头 wsse:Password 属性值
-
密码类型属性
enum
Web Service Security身份认证请求头 wsse:Password
Type类型:PasswordText、PasswordDigest
PasswordText
增加随机数属性
bool
是否使用自动生成的随机数作为 wsse:Nonce 属性值
false
用户自定义随机数
string
用户自定义输入 Web Service Security 身份认证请求头 wsse:Nonce 属性值,此时增加随机数属性参数需设置为 false
-
增加创建时间属性
bool
是否使用自动生成的创建时间作为 wsu:Created 属性值
false
用户自定义创建时间
string
用户自定义输入 Web Service Security 身份认证请求头 wsu:Created 属性值,此时增加创建时间属性参数需设置为 false
-




输出

组件输出的 message 信息如下:
message 属性
payload
执行成功后,payload 为 dict 类型;执行失败后,payload 为空
error
执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息
attribute
返回 SOAP 组件的 attribute 信息
variable
继承上个组件的 variable 信息
消息的 attributes:
attributes 信息
描述
attrs.statusCode
响应的状态码,例如:200
attrs.reasonPhrase
响应的文本描述,例如:OK
attrs.headers
响应的 Header,结果为 dict<string, list>
attrs.cookies
响应的 Cookie,结果为 dict<string, string>
消息的 Payload: SOAP 请求返回的响应 Response 为 XML 格式,会首先进行一次 Flatten 处理,将 XML 转换为 dict 类型,然后放到消息 payload 中,后续可通过 dataway 表达式直接访问。
正确输出为 dict 类型,例如:
{
"Body": {
"AddResponse": {
"AddResult": "5"
}
}
}
错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
{
"Code": "CORE:RUNTIME",
"Description": "SOAP:CONNECT Can not find method:Add1 in wsdl description"
}

案例

1. 在连接器列表中选择 SOAP 连接器,选择 SOAP 请求操作。




2. 输入连接器配置参数,其中 WSDL Location = "http://www.dneonline.com/calculator.asmx?WSDL&quot;,Service=&quot;Calculator&quot; , Port = "CalculatorSoap",其他参数保持默认值即可。具体如下图:


默认使用 WSDL URL 参数设置为 true,此时会根据 WSDL Location 参数值提供的 wsdl url 链接进行解析;当使用 WSDL URL 参数设置为 false 时,用户也可通过输入 WSDL 文件参数值来对 Web 服务的 WSDL 文件内容进行解析。


首先在 SOAP 组件前添加 SetVariable 组件,变量名设置为 wsdlFile,变量值类型选择 entity.xml、值设为 WSDL Url 链接的 xml 内容。




然后在 SOAP 组件连接器配置中将使用 WSDL URL 参数设置为 false,将 WSDL 文件参数设置为 msg.vars["wsdlFile"] 变量值保存即可。


3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。接口名称设为“Add”(根据 WSDL 文件 operation 参数获取),请求头、请求体表达式输入见下图:


SOAP 请求体表达式输入见下图:


SOAP请求头表达式输入见下图,默认为空:


当需要支持 Web Service Security 身份认证方式时,SOAP 请求头表达式输入可参考下图进行配置:
image-20210427104857762


或者将 Web Service Security 使能设置为 true,进行 Web Service Security 身份认证请求头参数的可视化编辑,具体可参考下图进行配置:
image-20210427104857762


4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定


5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。


SOAP 返回 payload 响应结果如下,即为请求体中 intA 和 intB 两数相加结果。