如何通过Spring WebFlux端点重定向至外部网站(去除localhost前缀)
解决Spring WebFlux重定向到外部URL时带localhost的问题
问题出在你使用的是相对URI而非绝对URI:当你传入www.google.com时,URI.create()会将其解析为相对路径,Spring WebFlux会自动拼接当前服务的主机和端口,最终生成localhost:8080/www.google.com这样的重定向地址。
要直接重定向到https://www.google.com,只需在地址前加上完整的协议前缀,使用绝对URI即可:
ServerHttpResponse response; String google = "https://www.google.com"; response.setStatusCode(HttpStatus.TEMPORARY_REDIRECT); response.getHeaders().setLocation(URI.create(google)); return response.setComplete();
如果需要动态构建外部地址,确保最终传入setLocation的是包含协议、主机的完整绝对URI,就能避免被拼接本地服务地址的问题。
内容的提问来源于stack exchange,提问作者user19997211
相关产品推荐
相关产品推荐

