1
我有一种情况需要拦截请求,我需要将授权头设置为该请求。 所以我得到的解决方案,我可以使用拦截器来设置标题,但当我检查AsyncRestTemplate然后它没有像RestTemplate那样的属性。为什么AsyncRestTemplate在弹簧中没有像RestTemplate这样的拦截器?
是否有任何特定原因不包括该属性?
我有一种情况需要拦截请求,我需要将授权头设置为该请求。 所以我得到的解决方案,我可以使用拦截器来设置标题,但当我检查AsyncRestTemplate然后它没有像RestTemplate那样的属性。为什么AsyncRestTemplate在弹簧中没有像RestTemplate这样的拦截器?
是否有任何特定原因不包括该属性?
AsyncRestTemplate
扩展了InterceptingAsyncHttpAccessor
抽象类,该类揭示了方法setInterceptors
。所以当然你可以设置拦截器,就像你使用非异步RestTemplate一样。请注意,您的拦截器需要实现AsyncClientHttpRequestInterceptor
来代替:
public class AsyncFooBarInterceptor implements AsyncClientHttpRequestInterceptor {
@Override
public ListenableFuture<ClientHttpResponse> intercept(HttpRequest request, byte[] body, AsyncClientHttpRequestExecution execution) throws IOException {
return null; // do your thing instead
}
}
然后使用它:我使用的是不具有这样的性质“setInterceptors”
AsyncRestTemplate asyncRestTemplate = new AsyncRestTemplate();
asyncRestTemplate.setInterceptors(Collections.singletonList(new AsyncFooBarInterceptor()));
AsyncRestTemplate。它来自spring-web-4.0.4.jar –
所以你不使用弹簧? @NIravModi – baao
这是类AsyncRestTemplate的定义,扩展AsyncHttpAccessor实现AsyncRestOperations –