我已经在我的 PaaS 环境中安装了 Spring XD,对于遗留问题,我坚持使用 1.0.0.M1 版本。(参见参考文档)。我的目标是使用该http-client
模块调用 http rest API。我的流定义是:
http | httpclient --url='''<my_url>''' --http-method=POST --mappedRequestHeaders=HTTP_REQUEST_HEADERS | log --expression=#root
不幸的是,由于http
模块仅将有效负载发送到httpclient
,httpclient
由于缺少内容类型标头,因此返回 415 错误。
考虑到我既不能添加新模块也不能修改现有模块(在这样的版本中,您只能引用 spring 存储库),我想使用一个tranform
模块来注入 content-type 标头。
我怎样才能实现这样的目标?
非常感谢您的帮助。
编辑:
我刚刚发现 httpclient 处理器(链接)支持 headersExpression 用于派生要使用的 http 标头映射的 SpEL 表达式。然而:
--headers-expression='{Content-Type:'application/json'}'
给出以下解析异常:
org.springframework.expression.spel.SpelEvaluationException: EL1008E:
(pos 1): Property or field 'Content' cannot be found on object of type 'org.springframework.messaging.support.GenericMessage' - maybe not public?