【问题标题】:How to send http-client post request with springXD如何使用springXD发送http-client post请求
【发布时间】:2016-04-01 11:27:50
【问题描述】:

我已经在我的本地实现了一个 restfull webservice 项目,我可以从 rest-client 发送请求,并且我也得到了响应。 下面是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 请求。

【问题讨论】:

  • 您可以使用 Spring 集成为 XD 创建自定义组件

标签: java spring spring-xd


【解决方案1】:

由于您使用的是 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);

希望这会有所帮助。

【讨论】:

  • 使用 spring 我可以发送请求并获得响应。我正在尝试 Spring XD。如何使用 Spring-XD 发送带有标头的请求
  • 所以this 可能会有所帮助。
【解决方案2】:

使用httpMethod 属性...

--httpMethod=POST

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

【讨论】:

    【解决方案3】:

    让我们举个例子。如果您希望 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
    

    trigger 模块将发送 '' char 作为默认请求,要更改此行为,您可以通过添加有效负载参数来定义确切的字符串,例如: 触发 --payload='yourRequestMessage' --cron='0 * 8-17 * * 1-5'

    【讨论】:

    • 我想尝试 POST 方法,还需要发送请求正文而不是 GET 方法。
    • abcccccccccccccccccccccccc
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    相关资源
    最近更新 更多