package com.momo.demo;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestConfig {
@Bean
public OkHttp3ClientHttpRequestFactory clientHttpRequestFactory() {
OkHttp3ClientHttpRequestFactory clientHttpRequestFactory = new OkHttp3ClientHttpRequestFactory();
clientHttpRequestFactory.setConnectTimeout(10000);
clientHttpRequestFactory.setReadTimeout(10000);
clientHttpRequestFactory.setWriteTimeout(10000);
return clientHttpRequestFactory;
}
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.setRequestFactory(clientHttpRequestFactory());
return restTemplate;
}
}
package com.momo.demo;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
public class RestUtil {
public static <T> ResponseEntity<T> get(RestTemplate rest, String url, Map<String, String> headers, Class<T> responseType, Map<String, Object> params) {
HttpHeaders httpHeaders = new HttpHeaders();
if(headers !=null && !headers.isEmpty()){
httpHeaders.setAll(headers);
}
String requestUrl = buildUrl(url,params);
HttpEntity<?> requestEntity = new HttpEntity<>(headers);
if(params != null && !params.isEmpty()) {
return rest.exchange(requestUrl, HttpMethod.GET, requestEntity, responseType, params);
}else{
return rest.exchange(requestUrl, HttpMethod.GET, requestEntity, responseType);
}
}
private static String buildUrl(String baseUrl,Map<String,Object> params) {
StringBuffer sb = new StringBuffer(baseUrl);
String url = baseUrl;
if(params != null && !params.isEmpty()) {
sb.append("?");
for(Map.Entry<String,Object> entry : params.entrySet())