如何确定向远程 Spring Boot 服务器发送请求的 URL?
Posted
技术标签:
【中文标题】如何确定向远程 Spring Boot 服务器发送请求的 URL?【英文标题】:How to determine the URL to send requests to for a remote Springboot server? 【发布时间】:2021-12-18 17:38:52 【问题描述】:我已经成功部署了一个Springboot服务器到AWS Elastic Beanstalk
,可以通过浏览器的URL访问。
我希望能够从 Postman 向它发送请求。我想我可以使用此代码打印我将从 Postman 发送请求的 URL:
@Override
public void run(ApplicationArguments args) throws Exception
try
String s1 = InetAddress.getLoopbackAddress().getHostAddress();
String hostedAt = s1 + ":" + environment.getProperty("local.server.port");
logger.info("**The server is hosted at: ", hostedAt);
catch (Exception e)
e.printStackTrace();
但是,即使部署到 AWS,它也会打印 **The server is hosted at 127.0.0.1:8080
。很明显,本地主机不是我应该发送请求的地方,那么在哪里呢?
使用我的浏览器,如果我导航到应用程序的 URL,那么我会得到 Whitelabel error page
证明它有效。这是网址:http://spara.us-east-1.elasticbeanstalk.com/
我是新手,所以它可能有些愚蠢,但任何指导都会有所帮助。谢谢!
【问题讨论】:
【参考方案1】:您现在拥有的是应用程序的公开 URL,即:
http://spara.us-east-1.elasticbeanstalk.com/
您似乎没有为您的应用设置基本 URL/上下文路径。默认上下文路径(如果未设置)为空。这意味着,您应该能够使用 Postman 访问上面的 URL。
但是,如果您确实需要在 application.properties 中为您的 Spring Boot 应用程序设置基本 URL,您可以将其添加到上面的 URL 并通过邮递员访问。
对于 Spring 启动 2.x:
server.servlet.context-path=/your-base-url
Spring Boot 1.2+ (
spring.data.rest.basePath=/your-base-url
【讨论】:
【参考方案2】:ServletUriComponentsBuilder。 fromRequestUri(HttpServletRequest
如果您谈论的是 Spring Boot 基本 URL,应该可以工作
【讨论】:
我可以在我拥有的 run() 函数中使用它吗?我想查看我的服务器启动时的值以上是关于如何确定向远程 Spring Boot 服务器发送请求的 URL?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 框架中发送 HTTP 请求?