【问题标题】:Unable to access POST parameter values - IIB Esql无法访问 POST 参数值 - IIB Esql
【发布时间】:2020-01-21 18:23:26
【问题描述】:

所以我对 IIB 和扩展 SQL 很陌生,但我想做的应该是直截了当的。我有一个 REST 应用程序,它有一个附加到子流的资源。我想要做的是获取传递给服务的输入值,并使用它使用HTTP请求节点调用远程Web服务,如下所示

SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'POST';
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://localhost:8002/MyService';
SET OutputLocalEnvironment.Destination.HTTP.QueryString.RemoteParam= InputLocalEnvironment.REST.Input.Parameters.myValue;

发生的情况是,当我调用 REST 方法并将值作为 GET 传递时,我能够访问该值。但是,当我使用 POST 传递参数值时,我无法访问该值。我目前的流程如下:

输入 > 计算 > HTTPRequest > 计算 > 输出

我在 Google 上搜索并应用了所有建议(例如,将计算节点设置为 LocalEnvironment),但似乎没有任何效果。

【问题讨论】:

  • 您是说当您使用 POST 调用 API 时 InputLocalEnvironment.REST.Input.Parameters.myValue 解析为空/空值吗?我建议您附加调试器并监视 LocalEnvironment 字段的值,因为它通过流。也许它被前一个节点删除了?

标签: ibm-integration-bus extended-sql


【解决方案1】:

好吧,我们需要更多信息来解决您的问题,但我猜您的HTTP request node 有问题

转到HTTP request 然后在properties 转到HTTP setting 并将HTTP method 更改为您正在使用的方法(获取或发布)

如果您想查看是否从正确的属性中获取数据,只需午餐调试器并在节点之前和之后放置断点,那么您可以查看在每个级别接收到的数据,您可以调用正确的属性.

ps。不要忘记再次部署您的项目以查看新项目 变化

希望对你有用

【讨论】:

    【解决方案2】:

    经过进一步研究,我发现IIB不会自动解析提交为application/x-www-form-urlencoded的内容。我插入了一个跟踪节点并意识到参数是作为 BLOB 提交的。我所要做的就是读取 blob,将其转换为字符串,然后使用拆分函数或消息模型来获取各个参数。谢谢指点

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-30
      • 2023-04-08
      • 2014-07-19
      • 2019-02-19
      • 2016-11-08
      • 2017-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多