【问题标题】:How to redirect Spring request to another application?如何将 Spring 请求重定向到另一个应用程序?
【发布时间】:2016-08-19 19:02:28
【问题描述】:

我有一个应用程序可以处理POST 请求。要请求,我需要定义一些标题、边界和连字符。换句话说,我需要制作完整的请求。我使用HttpURLConnection 成功地做到了这一点。 现在,我想从我的 Spring 应用程序中请求该应用程序。

说, 我有三个应用程序 A(传感器)、B(弹簧)和 C(服务器)。

在这种情况下,B 将充当桥梁,接收来自 A 的请求,对其进行身份验证并将其发送给 C。

我不想在 Spring 中再次制作相同的请求,它只是将请求重定向到服务器。 Spring中是否有任何机制?

【问题讨论】:

标签: java spring-mvc redirect


【解决方案1】:

重定向有3种机制:

  • 转发:您将请求(和关联的响应)传递给在同一上下文中的另一个 servlet,这意味着在同一 Web 应用程序中 - AFAIK 这不是您需要的
  • redirect:你给客户端(浏览器)一个位置(一个URL),它应该重新发送一个请求。您可以重定向到任何 URL,但它假设重定向的应用程序将直接接受客户端请求 - 正如您所说的 B 充当桥梁,我认为它仍然不是您所需要的
  • 代理:网桥向下一跳发送一个新请求,并将响应重新发送给它自己的客户端。由于原始请求和新请求之间没有耦合,如果您在同一台服务器上,您甚至可以使用不同的协议,例如管道或 Unix 套接字。或者您可以使用在 HTML 请求和响应中易于生成和解码的 Json。在 Windows 世界中,您甚至可以使用 DCOM 或 .NET 直接在远程服务器上执行方法。但即使它被那些工具隐藏了,你仍然需要在桥上构建一个新请求并在服务器上对其进行解码(同一服务器上的 DCOM/.NET 除外)

【讨论】:

  • 我不想像你说的那样再次构建请求,以防proxy。我有转发和重定向的想法,但不知道代理。我想我必须调查一下,如果它有助于不再构建请求。
  • 我也尝试过弹簧重定向和转发。但是重定向不会更改请求的客户端 IP 地址,所以我认为在这种情况下它是无用的。我也无法转发到另一个网址。
猜你喜欢
  • 2020-10-16
  • 2015-12-21
  • 2012-11-18
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多