Friday, December 7, 2018

Send GET/POST request with Spring Framework

Add httpclient to dependency list
1
2
3
4
5
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.6</version>
</dependency>
Below is an HttpUtil to send GET/POST request using Spring RequestTemplate
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RequestTemplate;
 
public class HttpUtil {
    private static final int DEFAULT_TIMEOUT = 1000;// 1second
    private static final HttpUtil INSTANCE = new HttpUtil();
    private RequestTemplate rest;
    private HttpComponentsClientHttpRequestFactory requestFactory;
 
    private HttpUtil() {
        requestFactory = new HttpComponentsClientHttpRequestFactory();
        requestFactory.setReadTimeout(DEFAULT_TIMEOUT);
        requestFactory.setConnectionTimeout(DEFAULT_TIMEOUT);
        rest = new RestTemplate(requestFactory);
    }
 
    public static HttpUtil getInstance() {
        return INSTANCE;
    }
     
    public <T> T get(String url, Class<T> responseClass) {
        return rest.getForObject(url, responseClass);
    }
     
    public <T> T post(String url, Object requestBody, Class<T> responseClass) {
        return rest.postForObject(url, requestBody, responseClass);
    }
     
}