RestTemplate 使用

北慕城南 提交于 2019-12-10 04:36:20

1. 项目中创建单例(当然也可以使用时创建实例)

@Configuration
public class RestTemplateConfig {
    @Bean(name = "factory")
    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
        SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
        factory.setConnectTimeout(15000);
        factory.setReadTimeout(5000);
        return factory;
    }
    
    @Bean(name = "restTemplate")
    public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
        return new RestTemplate(factory);
    }
}

1. GET请求

@Autowired
private RestTemplate restTemplate;
    
...
// 封装Header 一般来说不需要封装
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("", "keep-alive");

HttpEntity<String> requestEntity = new HttpEntity<>(null, requestHeaders);
                
// 根据不同的相应类型来接取
 ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);

 ResponseEntity<Resource> entity = rest.exchange(matchUrl, HttpMethod.GET, requestEntity, Resource.class);
 
 ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.GET,Resource,Map.class);
 
 

2. post请求

HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Content-type", "application/json; charset=utf-8");
Map<String,Object> body = new HashMap<>();
body.put("id",1);
HttpEntity<Map> requestEntity = new HttpEntity<>(body, requestHeaders);
// 根据不同的相应类型来接取
 ResponseEntity<String> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);

 ResponseEntity<Resource> entity = rest.exchange(matchUrl, HttpMethod.POST, requestEntity, Resource.class);
 
 ResponseEntity<Map> entity =  restTemplate.exchange(url,HttpMethod.POST,Resource,Map.class);
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!