Spring boot 2 WebClient获取订阅服务器中的上下文参数

Spring boot 2 WebClient获取订阅服务器中的上下文参数,spring,spring-boot,reactive-programming,spring-webflux,spring-web,Spring,Spring Boot,Reactive Programming,Spring Webflux,Spring Web,我使用WebClient调用一个外部API,为每个请求关联一个requestId。处理请求并收到响应后,我将使用requestId更新一些表,以便确认与requestId关联的所有数据都已处理 public void getEmployeeData(List<Integer>employeeIds, String requestId){ WebClient webClient = WebClient.builder().baseUrl(baseUrl).build();

我使用WebClient调用一个外部API,为每个请求关联一个requestId。处理请求并收到响应后,我将使用requestId更新一些表,以便确认与requestId关联的所有数据都已处理

public void getEmployeeData(List<Integer>employeeIds, String requestId){
   WebClient webClient = WebClient.builder().baseUrl(baseUrl).build();

   webClient.post().uri(uri)
            .contentType(MediaType.APPLICATION_JSON_UTF8)
            .accept(MediaType.APPLICATION_JSON_UTF8)
            .header(HttpHeaders.AUTHORIZATION, "Basic " + Base64Utils
            .encodeToString((plainCreds)
            .getBytes(Charset.defaultCharset())))
            .body(BodyInserters.fromObject(body)).retrieve()
            .bodyToFlux(EmployeeInfo.class)
            .doOnError(throwable -> {
               Mono.error(throwable);
            }).subscribe(new Consumer<EmployeeInfo>() {
                @Override
                public void accept(EmployeeInfo employeeInfo) {
                    // Here I need the requestId which is passed as function 
                    //parameter
              }
            }); 
}
public void getEmployeeData(ListEmployeeId,String requestId){
WebClient WebClient=WebClient.builder().baseUrl(baseUrl.build();
webClient.post().uri(uri)
.contentType(MediaType.APPLICATION\u JSON\u UTF8)
.accept(MediaType.APPLICATION\u JSON\u UTF8)
.header(HttpHeaders.AUTHORIZATION,“Basic”+Base64Utils
.encodeToString((明文)
.getBytes(Charset.defaultCharset()))
.body(BodyInserters.fromObject(body)).retrieve()
.bodyToFlux(EmployeeInfo.class)
.doon错误(可丢弃->{
单声道错误(可丢弃);
}).订阅(新消费者){
@凌驾
公共作废接受(EmployeeInfo EmployeeInfo){
//这里我需要作为函数传递的requestId
//参数
}
}); 
}

上面的函数接收带有requestid的员工ID列表,我必须调用外部API来获取员工列表的信息,在调用此函数之前,我将根据requestid保存所有员工列表,因此,一旦收到响应,我就可以更新表,声明已收到给定requestId的所有员工信息。现在在订户部分中,我需要requestId,这样我就可以关联收到的响应属于特定requestId,您可以添加requestId的final,这样它就可以在subscribe函数中使用

public void getEmployeeData(List<Integer>employeeIds, final String requestId){
public void getEmployeeData(ListEmployeeId,最终字符串requestId){

您所指的requestId在哪里?您尝试了什么?为什么不起作用?您需要对远程服务返回的数据做些什么吗?@BrianClozel我已经更新了问题,并提供了更清楚的示例。我仍然不明白问题所在。
requestId
方法参数在该范围内可用。为什么您不能u重用您在这里获得的
requestId
?否则您希望在哪里找到该信息?