在 Spring Boot Rest Controller 中捕获所有请求路径
Catch all requested paths in Springboot RestController
我正在寻找一种在 Springboot 中获取端点的方法,该端点可以捕获发送到 /
的所有请求。理想情况下,/
后面的所有内容都应作为字符串参数提交。
示例请求可能如下所示:http://myproxy.com/foo/bar?blah=blubb
我尝试了 /
的 RestController
@RestController
public class ProxyRestController {
@RequestMapping("/{restOfPath}", method = RequestMethod.GET)
public ResponseEntity<String> handleGetRequests(@PathVarialbe("restOfPath") String path) {
return ResponseEntity.of(Optional.of(""));
}
}
端点未捕捉到示例,因为它将被路由到 /foo/bar
而 /foo
被捕捉到。
如何在 SpringBoot 中实现“捕获所有”端点?它也可以是 @RestController
之外的另一种方式,我只需要在组件内部并将 http 响应发送回调用者即可。
修改此代码以匹配您的代码:
@Controller
public class RestController {
@RequestMapping(value = "/**/{path:.*}")
public String index(final HttpServletRequest request) {
final String url = request.getRequestURI();
return "something";
}
}
我正在寻找一种在 Springboot 中获取端点的方法,该端点可以捕获发送到 /
的所有请求。理想情况下,/
后面的所有内容都应作为字符串参数提交。
示例请求可能如下所示:http://myproxy.com/foo/bar?blah=blubb
我尝试了 /
@RestController
public class ProxyRestController {
@RequestMapping("/{restOfPath}", method = RequestMethod.GET)
public ResponseEntity<String> handleGetRequests(@PathVarialbe("restOfPath") String path) {
return ResponseEntity.of(Optional.of(""));
}
}
端点未捕捉到示例,因为它将被路由到 /foo/bar
而 /foo
被捕捉到。
如何在 SpringBoot 中实现“捕获所有”端点?它也可以是 @RestController
之外的另一种方式,我只需要在组件内部并将 http 响应发送回调用者即可。
修改此代码以匹配您的代码:
@Controller
public class RestController {
@RequestMapping(value = "/**/{path:.*}")
public String index(final HttpServletRequest request) {
final String url = request.getRequestURI();
return "something";
}
}