Spring integration 如何在Spring云数据流处理器中指定头表达式;http请求;?

Spring integration 如何在Spring云数据流处理器中指定头表达式;http请求;?,spring-integration,spring-cloud-stream,spring-cloud-dataflow,spring-expression-language,Spring Integration,Spring Cloud Stream,Spring Cloud Dataflow,Spring Expression Language,当使用SCDF预构建处理器“http请求”调用外部服务时,我们试图传递基本身份验证头。根据我的理解,在进行调用时,消息http头不会自动传递,我们需要填充“headers expression”属性。以下是流定义的呼叫处理器步骤: http-request --body-expression=payload --url-expression='headers.reportURL' --http-method-expression='headers.httpMethod' --headers-ex

当使用SCDF预构建处理器“http请求”调用外部服务时,我们试图传递基本身份验证头。根据我的理解,在进行调用时,消息http头不会自动传递,我们需要填充“headers expression”属性。以下是流定义的呼叫处理器步骤:

http-request --body-expression=payload
--url-expression='headers.reportURL' --http-method-expression='headers.httpMethod' --headers-expression='headers.Authorization'
在前面的步骤中,我们已经将消息头“Authorization”设置为“Basic”,因此当消息到达“http请求”处理器时,“headers.Authorization”具有正确的基本身份验证头值。但是,这不起作用,流日志有以下错误:

org.springframework.expression.spel.SpelEvaluationException:EL1001E:类型转换问题,无法从org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:75)的java.lang.String转换为org.springframework.expression.ExpressionUtils.convertTypedValue的java.util.Map(ExpressionUtils.java:57)

从错误消息中,我们似乎需要传递一个映射?类似于“Authorization:headers.Authorization”?(流甚至没有通过这种方式编码成功部署)。我们不希望将“headers.Authorization”硬编码为文字基本Auth base64字符串。另外,如何指定多个头(如添加“content type”)在“headers expression”(标题表达式)中,我们搜索了SCDF文档和联机文档,但似乎找不到如何执行此操作的示例


谢谢。

如果你已经预先设置了这些头,只考虑这样的表达式:<代码> -标题表达式=“页眉”。标题>代码>属性> <代码>消息>代码>本身是< /Calp>MAP。


如果还不符合您的要求,请考虑使用<代码>在线地图语法:SPEL:

它只使用“页眉”来工作。谢谢,阿特姆!