向 SOAP 请求消息添加 SOAP 头
您可以通过创建类型为 SOAPHeader 或 SOAPHeaders的变量将 SOAP 头添加到请求消息。 然后,可以将此变量映射到 SOAP 头请求。
过程
- 创建服务流并添加服务任务。
- 选择服务任务,然后单击图区域上方的 变量 选项卡。
- 创建稍后将映射到请求消息的 SOAP 头的专用变量。 要将单个头条目添加到请求消息,请使用变量类型 SOAPHeader。 要向请求消息添加多个头,请使用变量类型 SOAPHeaders。
- 初始化在步骤 3 中创建的变量。可以通过三种方式来初始化变量:
- 在创建变量的页面上定义缺省值。
- 将 JavaScript 代码添加到服务器脚本组件。
- 单击 前置和后置 ,并将 JavaScript 代码添加到 " 预执行分配 " 部分
以下 JavaScript 代码示例初始化类型为 SOAPHeader 且包含单个头条目的专用变量 requestHeader:tw.local.requestHeader.name = "sessionId"; tw.local.requestHeader.nameSpace = "http://acme.com"; tw.local.requestHeader.value = "<x:sessionId xmlns:x=\"http://acme.com\">1237314</x:sessionId>";注: 请确保名称空间是标准名称空间,如示例中所示。注: 尝试避免 SOAP 头值中出现空格。 最佳做法是添加不带任何多余空格的 XML 片段。您可以包含多个头。 以下 JavaScript 代码示例初始化两个 SOAP 头,并将它们添加到类型为 SOAPHeaders 且包含多个头的 requestHeaders 专用变量中:// Initialize the "subscriptionId" header var header1 = new tw.object.SOAPHeader(); header1.name = "subscriptionId"; header1.nameSpace = "http://acme.com"; header1.value = "<x:subscriptionId xmlns:x=\"http://acme.com\">123-4567-9012</x:subscriptionId>"; // Initialize the "auditLogUUID" header var header2 = new tw.object.SOAPHeader(); header2.name = "auditLogUUID"; header2.nameSpace = "http://acme.com"; header2.value = "<x:auditLogUUID xmlns:x=\"http://acme.com\">ab74-ffce-3333-feab</x:auditLogUUID>"; // Now add the two headers to the SOAPHeaders variable tw.local.requestHeaders.headers[0] = header1; tw.local.requestHeaders.headers[1] = header2; - 在 "属性" 视图的 数据映射 选项卡上的 "输入头映射" 部分中,添加新创建的变量 ( requestHeader 或 requestHeaders) 以将其映射到请求 SOAP 头。
- 完成 Web Service 集成的定义。
- 单击 保存 或 完成编辑。
- 通过单击 运行 来运行服务流,并验证是否已将 SOAP 头添加到请求消息中。