Advertisement
jarturon55

callWebService

Nov 18th, 2018
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.67 KB | None | 0 0
  1. import java.io.IOException;
  2.  
  3.  
  4. import java.security.cert.X509Certificate;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8.  
  9. import javax.net.ssl.HttpsURLConnection;
  10. import javax.net.ssl.SSLContext;
  11. import javax.net.ssl.TrustManager;
  12. import javax.net.ssl.X509TrustManager;
  13.  
  14. import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
  15. import org.apache.http.impl.client.CloseableHttpClient;
  16. import org.apache.http.impl.client.HttpClients;
  17. import org.springframework.beans.factory.annotation.Value;
  18. import org.springframework.http.HttpEntity;
  19. import org.springframework.http.HttpHeaders;
  20. import org.springframework.http.HttpMethod;
  21. import org.springframework.http.HttpRequest;
  22. import org.springframework.http.MediaType;
  23. import org.springframework.http.ResponseEntity;
  24. import org.springframework.http.client.ClientHttpRequestExecution;
  25. import org.springframework.http.client.ClientHttpRequestFactory;
  26. import org.springframework.http.client.ClientHttpRequestInterceptor;
  27. import org.springframework.http.client.ClientHttpResponse;
  28. import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
  29. import org.springframework.stereotype.Component;
  30. import org.springframework.util.CollectionUtils;
  31. import org.springframework.web.client.RestTemplate;
  32.  
  33. @Component
  34. @Slf4j
  35. public class CallWebService {
  36.    
  37.    
  38.     public List<HashMap> callWebService(String url, String token) {
  39.        
  40.         HttpHeaders headers = new HttpHeaders();
  41.         headers.setContentType(MediaType.APPLICATION_JSON);
  42.         headers.add("Authorization", token);
  43.         RestTemplate restTemplate = getRestTemplateInstance();
  44.         HttpEntity entity = new HttpEntity(headers);
  45.         ResponseEntity<List> result = restTemplate.exchange(url, HttpMethod.GET, entity, List.class);
  46.         List<HdePluginVo> listOfHdeData = new ArrayList<>();
  47.         List<HashMap> listOfHashMapData = result.getBody();
  48.         if (listOfHashMapData == null) {
  49.             return null;
  50.         }
  51.        
  52.         return listOfHashMapData;
  53.     }
  54.    
  55.    
  56.     private RestTemplate getRestTemplateInstance() {
  57.        
  58.         RestTemplate restRequest = new RestTemplate(clientHttpRequestFactory());
  59.        
  60.             List<ClientHttpRequestInterceptor> interceptors = restRequest.getInterceptors();
  61.         if (CollectionUtils.isEmpty(interceptors)) {
  62.             interceptors = new ArrayList<>();
  63.         }
  64.         interceptors.add(new LoggingClientHttpRequestInterceptor());
  65.         restRequest.setInterceptors(interceptors);
  66.             return restRequest;
  67.     }
  68.    
  69.    
  70.     private static ClientHttpRequestFactory clientHttpRequestFactory() {
  71.          TrustManager[] UNQUESTIONING_TRUST_MANAGER = new TrustManager[]{
  72.             new X509TrustManager() {
  73.                 public java.security.cert.X509Certificate[] getAcceptedIssuers(){
  74.                     return null;
  75.                 }
  76.                 public void checkClientTrusted( X509Certificate[] certs, String authType ){}
  77.                 public void checkServerTrusted( X509Certificate[] certs, String authType ){}
  78.             }
  79.          };
  80.         try {
  81.  
  82.             SSLContext sslContext = SSLContext.getInstance("SSL");
  83.             sslContext.init( null, UNQUESTIONING_TRUST_MANAGER, null );
  84.             HttpsURLConnection.setDefaultSSLSocketFactory(
  85.                     sslContext.getSocketFactory());
  86.             SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(
  87.                     sslContext,
  88.                     SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
  89.  
  90.             CloseableHttpClient httpClient = HttpClients.custom()
  91.               .setSSLSocketFactory(csf)
  92.               .build();
  93.             HttpComponentsClientHttpRequestFactory requestFactory =
  94.                     new HttpComponentsClientHttpRequestFactory();
  95.             requestFactory.setHttpClient(httpClient);
  96.             requestFactory.setReadTimeout(15000);
  97.             requestFactory.setConnectTimeout(3000);
  98.             return requestFactory;
  99.         } catch (Exception e) {
  100.             e.printStackTrace();
  101.             log.error(e + "");
  102.             return null;
  103.         }
  104.  
  105.     }
  106.    
  107. }
  108.  
  109.  
  110. @Slf4j
  111. class LoggingClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
  112.     @Override
  113.     public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException {
  114.         logRequest(request, body);
  115.         ClientHttpResponse response = execution.execute(request, body);
  116.         return response;
  117.     }
  118.  
  119.     protected void logRequest(HttpRequest request, byte[] body) throws IOException {
  120.         log.trace("URI         : {}", request.getURI());
  121.         log.trace("Method      : {}", request.getMethod());
  122.         log.trace("Headers     : {}", request.getHeaders() );
  123.         log.trace("Request body: {}", new String(body, "UTF-8"));
  124.     }
  125. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement