代理转换 http 请求的 XML 主体吗?

代理转换 http 请求的 XML 主体吗?

我有一个无法轻易更改的调用系统。它发送了一个包含两个元素且顺序错误的 http 请求(实际上是 SOAP)。

使用 XSL 转换可以轻松修复此问题。

我想实现一个通过 XSL 转换请求的代理 Web 服务器。理想情况下,Web 服务器是 Apache 或 nginx,但我也可以看看其他的。

有什么建议吗?

答案1

当我弄清楚一些事情时,我回答了我自己的问题。

我在 Apache 中使用了 mod_ext_filter,并在实际转换中使用了 SaxonHE。这不是一个高性能解决方案(它会为每个请求启动处理器),但目前已经足够了。

配置的关键行是:

ExtFilterDefine soap-fix mode=input cmd="/usr/bin/java -cp /saxon-install-location/saxon-he-10.3.jar net.sf.saxon.Transform -xsl:/whereever-you-want/fix.xsl -s:- "
SetInputFilter soap-fix

然后使用标准代理来转发修改后的请求。

相关内容