Spring Boot/Spring MVC-如何从另一个请求转发响应



我需要一个休息终点,其响应是html。但是,我希望从我的项目中定义的视图中定义了一个视图,而是想从该休息终点内提出的另一个请求中转发HTML响应。例如,我的休息终点向内部服务提出了HTTP请求,并返回从该服务返回的HTML?是否可以?有什么想法吗?这是一个代码示例

@RequestMapping("/test")
public String testMe(Model model, @RequestParam("param1") String param1, @RequestParam("param2") String param2)
{
    //Make a Http call to an internal service and return the response from that call
    return "<RESPONSE_FROM_THAT_CALL>";
}

我想从内部服务返回HTML响应

您可以使用RestTemplate从其他服务中获取结果,然后将其返回为String

@Controller
public class MyController {
    private RestTemplate restTemplate = new RestTemplate();
    @ResponseBody
    @RequestMapping("/test")
    public String testMe(Model model, @RequestParam("param1") String param1, @RequestParam("param2") String param2) {
        URI uri = UriComponentsBuilder.fromHttpUrl("http://www.example.com");
            .queryParam("param1", param1)
            .queryParam("param2", param2)
            .build()
            .toUri());
        return restTemplate.getForObject(uri, String.class);
    }
}

如果您将拥有更多想要代理另一个服务的端点,则应考虑使用例如Zuul作为微观代理。参见例如这篇博客文章解释了如何轻松创建这样的代理。

相关内容

最新更新