Java 如何在SpringWeb筛选器中使用请求主体属性
我有下面的spring cloud gateway方法,如果Java 如何在SpringWeb筛选器中使用请求主体属性,java,spring,spring-boot,spring-cloud,spring-cloud-gateway,Java,Spring,Spring Boot,Spring Cloud,Spring Cloud Gateway,我有下面的spring cloud gateway方法,如果uri名称与发现方法返回的名称相同,则将传入请求转发给uri,该方法将传入请求的请求体作为参数。不过,我真正需要的是能够从changeUri()方法内部调用此方法并利用请求体的值 我非常感谢任何帮助完成这个方法的人 -当前代码: private <T extends RequestData> Function<PredicateSpec, Route.AsyncBuilder> checkRoute(String
uri
名称与发现方法返回的名称相同,则将传入请求转发给uri
,该方法将传入请求的请求体作为参数。不过,我真正需要的是能够从changeUri()
方法内部调用此方法并利用请求体的值
我非常感谢任何帮助完成这个方法的人
-当前代码:
private <T extends RequestData> Function<PredicateSpec, Route.AsyncBuilder> checkRoute(String server, String path, String method, Class<T> inClass) {
return r -> {
System.out.println("Trying server: " + server);
return r.path(path)
.and()
.readBody(inClass, requestBody -> discoveryService.findInstanceWithRef(requestBody).equals(server))
.and().method(method)
.uri(server)
.id("th");
};
}
private <T extends RequestData> Function<PredicateSpec, Route.AsyncBuilder> checkRoute(String server, String path, String method, Class<T> inClass) {
return r -> {
System.out.println("Trying server: " + server);
return r.path(path)
.and()
.readBody(inClass, requestBody -> discoveryService.findInstanceWithRef(requestBody).equals(server))
.filters(r -> r.changeRequestUri(...somehow call findInstanceWithRef(requestBody) in here...)) <------
.and().method(method)
.uri(server)
.id("th");
};
}