【问题标题】:POST payload over HTTPS connection in Spring在 Spring 中通过 HTTPS 连接 POST 有效负载
【发布时间】:2019-09-29 09:44:57
【问题描述】:

我正在尝试通过 HTTPS 连接连接到第三方系统并发布参数以接收响应。这将是一个我已经开始研究的 POC。我已经在我的 Spring 应用程序中使用 SI 与出站网关建立了客户端-服务器 TCP 连接。 SI 提供了实现 HTTPS 连接的方法还是有更简单的方法,RestTemplate?

我可以看到Spring Integration - how to send POST parameters with http outbound-gateway,但它谈论的是 HTTP 而不是 HTTPS。

注意:Linux 服务器已经使用 CURL 与该第三方系统通信。我需要在我的 spring 应用程序中复制这种通信。这是共享的示例 Req / Res。

请求数据:ord=000000&term=022&storenum=00623&fgen=667&action=1024&ctime=072119:22:23:32&tmout=08&PLU=00007565604633&BC=10364678071919225000623&QTY= 1.000

回复:000000022006231024ctime=072119:22:23:32&itmz=P---11NSFU-T&desc=JARU ALL MN LT UP DIAMOND&rmfsline=1&avqty=1.0&barcode=10364678071919225000623&qty=1.0&rcptqty=3.0000&rcptline=5&upc=7565604633&reqqty=1.0&unitprice=1.97&price=5.91&dept=92&resp=00&POST /RMFSWeb/LineAuthListener? HTTP/1.1

另外,与我共享的 URL 是 https://xx-cert.keb.com:20143,但 URL 中没有类/方法名称。 HTTPS 连接不需要吗?

请分享您对我如何使用上述数据从 spring 实现 https 连接的想法。感谢您的帮助

【问题讨论】:

  • HTTP和HTTPS在业务逻辑或请求/回复处理上没有区别。唯一不同的是围绕常规 HTTP 请求/回复的 SSL/TLS。这实际上已经是传输层配置的问题。通常我们只需要在 Java 中有一个正确的cacerts。您还可以查看 Apache Commons HTTP 客户端中更高级的 SSL 配置:baeldung.com/httpclient-ssl
  • @ArtemBilan 这是我对您的评论的总结和问题。如果我错了,请纠正我 1. Spring Rest 模板是我可以继续使用的方式,在这种情况下不是 SI。 2. 共享的 ref url 没有说明证书/信任库。 3.假设必须将https url的证书添加到部署我的应用程序的服务器的信任库中。 4 我分享的https url不应该有https://domain:port/{someService}/{someMethod},因为你说req/reply处理与http相同吗?现在它只是https://domain:port。请指导。
  • 1.没有正确的。 Spring Integration HttpRequestExecutingMessageHandler 完全基于 RestTemplate。 SSL 配置完全不相关。
  • 2.这是正确的。您只需使用 HTTPS 架构,底层客户端将在商店中选择适当的证书来附加请求。
  • 4. URL确实没有区别。您应该使用的 REST API 取决于您的提供商。这与 HTTP 或 HTTPS 无关。

标签: java spring spring-integration spring-integration-http


【解决方案1】:

带有 PostRequest 的 RestTemplate 将完成所有工作。

请参考这篇文章中“Tharshan”的回答。

How to POST form data with Spring RestTemplate?

【讨论】:

  • 这很有帮助。谢谢!
猜你喜欢
  • 2017-01-08
  • 2013-04-12
  • 1970-01-01
  • 2017-11-12
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多