Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringWeb筛选器中使用请求主体属性_Java_Spring_Spring Boot_Spring Cloud_Spring Cloud Gateway - Fatal编程技术网

Java 如何在SpringWeb筛选器中使用请求主体属性

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

我有下面的spring cloud gateway方法,如果
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");
    };
}