2017-06-21 40 views
2

是否有任何其他方式與基本URI比 延伸RestTemplate並重寫執行method.currently我有一個像below.Thanks如何添加基礎URI在RestTemplate

class CustomRestTemplate extends RestTemplate { 
String baseUrl 

@Override 
protected T doExecute(URI url, HttpMethod method, RequestCallback requestCallback, ResponseExtractor responseExtractor) throws RestClientException { 
    return super.doExecute(new URI(baseUrl + url.toString()), method, requestCallback, responseExtractor) 
} 

回答

-2

AFAIK那裏的其他代碼初始化RestTemplate是沒有辦法,除了你上面列出的

0

春天的RestTemplate(版本4.2.0.RELEASE)支持名爲setUriTemplateHandler方法。如果這是從來沒有設置,它包含了DefaultUriTemplateHandler

DefaultUriTemplateHandler支持名爲法「setBaseUrl`

所以,你可以設置基本URL那裏。

3

春季5.0:

這將發送GET請求http://localhost:8080/myservice

RestTemplate restTemplate = new RestTemplate(); 
restTemplate.setUriTemplateHandler(new DefaultUriBuilderFactory("http://localhost:8080")); 
restTemplate.getForObject("/myservice", String.class); 
0

您可以創建自定義DefaultUriTemplateHandler

DefaultUriTemplateHandler defaultUriTemplateHandler = new DefaultUriTemplateHandler(); 
defaultUriTemplateHandler.setBaseUrl(url); 

然後將其添加到restTemplate

return new RestTemplateBuilder() 
     .uriTemplateHandler(defaultUriTemplateHandler) 
     .build();