• HttpClient实现调用外部项目接口工具类


    import java.io.IOException;
    import java.net.URL;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;

    import org.apache.http.NameValuePair;
    import org.apache.http.HttpEntity;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.conn.ssl.DefaultHostnameVerifier;
    import org.apache.http.conn.util.PublicSuffixMatcher;
    import org.apache.http.conn.util.PublicSuffixMatcherLoader;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.message.BasicNameValuePair;
    import org.apache.http.util.EntityUtils;

    public class HttpUtils {
     private static RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(15000)
       .setConnectionRequestTimeout(15000).build();

     public static String sendHttpGet(HttpGet httpGet) {
      CloseableHttpClient httpClient = null;
      CloseableHttpResponse response = null;
      HttpEntity entity = null;
      String responseContent = null;
      try {
       // 创建默认的httpClient实例.
       httpClient = HttpClients.createDefault();
       httpGet.setConfig(requestConfig);
       
       // 执行请求
       response = httpClient.execute(httpGet);
       entity = response.getEntity();
       responseContent = EntityUtils.toString(entity, "UTF-8");
      } catch (Exception e) {
       e.printStackTrace();
      } finally {
       try {
        // 关闭连接,释放资源
        if (response != null) {
         response.close();
        }
        if (httpClient != null) {
         httpClient.close();
        }
       } catch (IOException e) {
        e.printStackTrace();
       }
      }
      return responseContent;
     }
     /**
         * 发送 post请求
         * @param httpUrl 地址
         * @param maps 参数
         */ 
        public static String sendHttpPost(String httpUrl, Map<String, String> maps) { 
            HttpPost httpPost = new HttpPost(httpUrl);// 创建httpPost   
            // 创建参数队列   
            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
            for (String key : maps.keySet()) { 
                nameValuePairs.add(new BasicNameValuePair(key, maps.get(key))); 
            } 
            try { 
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } 
            return sendHttpPost(httpPost); 
        } 
         
         
     public static String sendHttpPost(HttpPost httpPost) {
      CloseableHttpClient httpClient = null;
      CloseableHttpResponse response = null;
      HttpEntity entity = null;
      String responseContent = null;
      try {
       // 创建默认的httpClient实例.
       httpClient = HttpClients.createDefault();
       httpPost.setConfig(requestConfig);
       // 执行请求
       response = httpClient.execute(httpPost);
       entity = response.getEntity();
       responseContent = EntityUtils.toString(entity, "UTF-8");
      } catch (Exception e) {
       e.printStackTrace();
      } finally {
       try {
        // 关闭连接,释放资源
        if (response != null) {
         response.close();
        }
        if (httpClient != null) {
         httpClient.close();
        }
       } catch (IOException e) {
        e.printStackTrace();
       }
      }
      return responseContent;
     }
     
     /**
         * 发送Get请求Https
         * @param httpPost
         * @return
         */ 
        public static String sendHttpsGet(HttpGet httpGet) { 
            CloseableHttpClient httpClient = null; 
            CloseableHttpResponse response = null; 
            HttpEntity entity = null; 
            String responseContent = null; 
            try { 
                // 创建默认的httpClient实例. 
                PublicSuffixMatcher publicSuffixMatcher = PublicSuffixMatcherLoader.load(new URL(httpGet.getURI().toString())); 
                DefaultHostnameVerifier hostnameVerifier = new DefaultHostnameVerifier(publicSuffixMatcher); 
                httpClient = HttpClients.custom().setSSLHostnameVerifier(hostnameVerifier).build(); 
                httpGet.setConfig(requestConfig); 
                // 执行请求 
                response = httpClient.execute(httpGet); 
                entity = response.getEntity(); 
                responseContent = EntityUtils.toString(entity, "UTF-8"); 
            } catch (Exception e) { 
                e.printStackTrace(); 
            } finally { 
                try { 
                    // 关闭连接,释放资源 
                    if (response != null) { 
                        response.close(); 
                    } 
                    if (httpClient != null) { 
                        httpClient.close(); 
                    } 
                } catch (IOException e) { 
                    e.printStackTrace(); 
                } 
            } 
            return responseContent; 
        } 
    }

  • 相关阅读:
    【HTML5】增强的表单
    10-okHttp的同步与异步
    9-安卓神奇的返回值
    8-安卓弹窗
    7-OKHttp使用详解,步骤挺详细的,适合初学者使用!
    34-ssm 最简洁的模板
    6-完美解决Error:SSL peer shut down incorrectly
    7- 基础练习 十六进制转八进制
    6-我的算法能力倒退了多少???
    5-java 排序, sort, collections.sort()
  • 原文地址:https://www.cnblogs.com/xiaofengyuan/p/6339776.html
Copyright © 2020-2023  润新知