如何使用springXD发送http-client post请求

时间:2016-04-01 11:27:50

标签: java spring spring-xd

我已经在我的本地实现了一个restfull webservice项目。从休息客户端我可以发送请求,我也得到了响应。 以下是rest-client“发布请求”:

{"address":{"type1":"abc","email":"tata@gmail.com"}}

响应:

{"address":{"type1":"abc","email":"tata@gmail.com"}}

这些是标题。

Content-Type:application/json

下面是我的本地java项目API URL:

http://localhost:8080/test/test1

现在我尝试学习spring XD如何使用spring XD发送请求。我已经在我的本地安装了Spring XD和RabbitMQ。

帮助我如何使用这些json请求从Spring XD发送post请求。

3 个答案:

答案 0 :(得分:0)

由于您使用的是Spring,也许您可​​以使用课程org.springframework.web.clientRestTemplate来请求您的API:

RestTemplate restTemplate = new RestTemplate();
HttpEntity<MailContact> request = new HttpEntity<>(new MailContact("contact@mail.net"));
Contact contact = restTemplate.postForObject("http://localhost:8080/test/test1", request, Contact.class);

希望这会有所帮助。

答案 1 :(得分:0)

使用httpMethod属性...

--httpMethod=POST

mappedRequestHeaders添加自定义标头,但会获得X-前缀。您需要使用自定义标头映射器自定义处理器以删除它。

答案 2 :(得分:0)

让我们给你举个例子。如果你希望SpringXD成为web服务客户端,从星期一到星期五每天早上8点到下午5点之间得到响应,并将结果转储到文件中, 请使用xd-shell

运行以下命令
stream create --name my_rest_client --definition "trigger --cron='0 * 8-17 * * 1-5' | http-client --url='''http://localhost:8080/test/test1''' --replyTimeout=2000 --httpMethod=GET --outputType=text/plain | file" --deploy

触发模块将发送&#39;&#39; char作为默认请求,要更改此行为,您可以通过添加payload param来定义精确字符串,如: 触发--payload =&#39; yourRequestMessage&#39; --cron =&#39; 0 * 8-17 * * 1-5&#39;