我需要将post请求参数传递给int-http:outbound-gateway,并且找不到任何简单的方法来执行此操作。我要做的是向沙发数据库发出一个http请求,只需一个请求就可以获取多个文档,如沙发数据库文档中所述:
curl -d '{"keys":["bar","baz"]}' -X POST http://127.0.0.1:5984/foo/_all_docs?include_docs=true
那么如何将名为'keys'的param传递给int-http:outbound-gateway? (我在消息的有效载荷中有我需要的所有数据)
<int-http:outbound-gateway request-channel="requestChannel"
url="http://127.0.0.1:5984/foo/_all_docs?include_docs=true"
http-method="POST"
expected-response-type="java.lang.String"/>
答案 0 :(得分:1)
入站消息的有效负载成为POST的主体;选定的标题已映射,您可以使用多个标题映射选项控制它;请参阅documentation。
如果您需要将一些java对象转换为上面的JSON,您可以在网关的上游添加转换器,或者将自定义MessageConverter
配置到网关本身。
你的curl命令正在发送JSON作为POST的主体;网关将做同样的事情。