向 SOAP 请求消息添加 SOAP 头

您可以通过创建类型为 SOAPHeaderSOAPHeaders的变量将 SOAP 头添加到请求消息。 然后,可以将此变量映射到 SOAP 头请求。

过程

  1. 创建服务流并添加服务任务。
  2. 选择服务任务,然后单击图区域上方的 变量 选项卡。
  3. 创建稍后将映射到请求消息的 SOAP 头的专用变量。 要将单个头条目添加到请求消息,请使用变量类型 SOAPHeader。 要向请求消息添加多个头,请使用变量类型 SOAPHeaders
  4. 初始化在步骤 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;
  5. 在 "属性" 视图的 数据映射 选项卡上的 "输入头映射" 部分中,添加新创建的变量 ( requestHeaderrequestHeaders) 以将其映射到请求 SOAP 头。
  6. 完成 Web Service 集成的定义。
  7. 单击 保存完成编辑
  8. 通过单击 运行 来运行服务流,并验证是否已将 SOAP 头添加到请求消息中。