DataPower 中的 Soap Action 和子字符串
Soap Action and substring in DataPower
在 DataPower 中,我必须读取传入的请求 soap 操作。读取后,我需要提取定界符后的最后一个字符串并将其保存在变量中。然后我需要修改 SoapAction 并为 Datapower 外部的每个请求设置新值。
我有
SOAPAction="http://service.example.com/version10_1/getMessage"
我想要它
SOAPAction="http://service.example.com/version11_1/getMessage"
我有一个使用如下函数的想法。请建议
1. 如何从 Header 中提取值 "getMessage"。我想通过保存一个变量来进一步使用它..
2. 修改传入的 SOAPAction 并发送新的更好的方法是什么。 Only Version 由版本10_1修改为11_1.
<xsl:template name="HeaderChange">
<xsl:variable name="IncomingRequest" select="dp:request-header('SOAPAction')"/>
<xsl:variable name="Mymethod"><xsl:value-of select=(get the getMessage here)/></xsl:variable>
<dp:set-http-request-header name="SOAPHeader" value="'to modify old SOAPAction'"/>
<dp:freeze-headers/>
</xsl:template>
似乎是标准 substring-before 和 substring-after XPath 函数的工作。
<xsl:value-of select="concat(
substring-before($IncomingRequest, 'version10_1'),
'version11_1',
substring-after($IncomingRequest, 'version10_1'))"/>
我认为您也可以通过在 header 重写操作中使用 url 重写策略来做到这一点。
您可以简单地使用 Headers/Param 选项卡添加,您可以在其中添加 Header 名称和值。
在 DataPower 中,我必须读取传入的请求 soap 操作。读取后,我需要提取定界符后的最后一个字符串并将其保存在变量中。然后我需要修改 SoapAction 并为 Datapower 外部的每个请求设置新值。
我有
SOAPAction="http://service.example.com/version10_1/getMessage"
我想要它
SOAPAction="http://service.example.com/version11_1/getMessage"
我有一个使用如下函数的想法。请建议 1. 如何从 Header 中提取值 "getMessage"。我想通过保存一个变量来进一步使用它.. 2. 修改传入的 SOAPAction 并发送新的更好的方法是什么。 Only Version 由版本10_1修改为11_1.
<xsl:template name="HeaderChange">
<xsl:variable name="IncomingRequest" select="dp:request-header('SOAPAction')"/>
<xsl:variable name="Mymethod"><xsl:value-of select=(get the getMessage here)/></xsl:variable>
<dp:set-http-request-header name="SOAPHeader" value="'to modify old SOAPAction'"/>
<dp:freeze-headers/>
</xsl:template>
似乎是标准 substring-before 和 substring-after XPath 函数的工作。
<xsl:value-of select="concat(
substring-before($IncomingRequest, 'version10_1'),
'version11_1',
substring-after($IncomingRequest, 'version10_1'))"/>
我认为您也可以通过在 header 重写操作中使用 url 重写策略来做到这一点。
您可以简单地使用 Headers/Param 选项卡添加,您可以在其中添加 Header 名称和值。