ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

HttpUtils 地址调用工具类

2021-10-26 11:00:51  阅读:180  来源: 互联网

标签:body 调用 String HttpUtils entity 地址 new httpResponse null


 

package com.infinitePossibilities.utils.requestUtils;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
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.client.methods.HttpPut;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
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;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.security.SecureRandom;
import java.util.*;

public class HttpUtils {

    private static final int REQUEST_TIMEOUT = 10 * 1000; // 设置请求超时10秒钟

    private static final int CONNECT_TIMEOUT = 5 * 1000; // 连接超时时间

    private static final int SO_TIMEOUT = 10 * 1000; // 数据传输超时

    private static final String ENCODING = "UTF-8";

    private static CloseableHttpClient httpclient = HttpClients.createDefault();
    private static CloseableHttpClient httpsclient;

    public HttpUtils() {
    }

    public static String getHttp(String apiUrl, Map<String, String> paramPairs) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpGet httpget = new HttpGet(apiUrl);
            List<NameValuePair> params = convert(paramPairs);
            String paramsStr = EntityUtils.toString(new UrlEncodedFormEntity(params));
            httpget.setURI(new URI(apiUrl + (apiUrl.indexOf("?") == -1 ? "?" : "&") + paramsStr));
            httpResponse = httpclient.execute(httpget);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var11) {
            throw new Exception(var11);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }
    
    public static byte[] getImgBytes(String apiUrl) {
         byte[] body = null;
         CloseableHttpResponse httpResponse = null;
            try {
                HttpGet httpget = new HttpGet(apiUrl);
                httpResponse = httpsclient.execute(httpget);
                HttpEntity entity = httpResponse.getEntity();
                body = EntityUtils.toByteArray(entity);
            }catch (Exception e) {
                System.out.println("httpUtils---err");
            }
            return body;
    }
    
    /**
     * Map<String,Object> {"fileName":string,"data":byte[]}
     * @param apiUrl
     * @return
     * @throws Exception
     */
    public static Map<String, Object> getPicByte(String apiUrl) throws Exception {
        byte[] body = null;
        Map<String, Object> map = new HashMap<String, Object>();
        CloseableHttpResponse httpResponse = null;
        try {
            HttpGet httpget = new HttpGet(apiUrl);
            httpResponse = httpsclient.execute(httpget);
            HttpEntity entity = httpResponse.getEntity();
            Header headerContentDis = httpResponse.getFirstHeader("Content-Disposition");
            Header headerContentType = httpResponse.getFirstHeader("Content-Type");
            if(headerContentDis == null && headerContentType == null) {
                return null;
            }
            String fileName = "";
            if(headerContentDis != null) {
                String value = headerContentDis.getValue();
                System.out.println("获取到的文件名头信息= "+value);
                if(StringUtils.isEmpty(value)) {
                    return null;
                }
                int indexOf = value.indexOf("\"");
                int lastIndexOf = value.lastIndexOf("\"");
                
                if(indexOf >0 && lastIndexOf > 0 && lastIndexOf> indexOf) {
                    fileName = value.substring(indexOf+1, lastIndexOf);
                }
                map.put("fileName", fileName);
            }
            
            if(headerContentType != null && StringUtils.isEmpty(fileName)) {
                String value = headerContentType.getValue();
                System.out.println("获取到的文件名头信息= "+value);
                if(StringUtils.isEmpty(value)) {
                    return null;
                }
                int indexOf = value.indexOf("/");
                int lastIndexOf = value.lastIndexOf(";");
                fileName = "tk.";
                if(indexOf >0 && lastIndexOf > 0 && lastIndexOf> indexOf) {
                    fileName = fileName + value.substring(indexOf+1, lastIndexOf);
                }
                map.put("fileName", fileName);
                
            }
            body = EntityUtils.toByteArray(entity);
            System.out.println(body);
            map.put("data", body);
            EntityUtils.consume(entity);
        } catch (Exception var8) {
            throw new Exception(var8);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return map;
    }

    public static String getHttp(String apiUrl) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpGet httpget = new HttpGet(apiUrl);
            httpResponse = httpclient.execute(httpget);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var8) {
            throw new Exception(var8);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String getHttps(String apiUrl) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpGet httpget = new HttpGet(apiUrl);
            httpResponse = httpsclient.execute(httpget);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var8) {
            throw new Exception(var8);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String postHttp(String apiUrl, Map<String, String> paramPairs) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            List<NameValuePair> params = convert(paramPairs);
            UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(params, "UTF-8");
            httpPost.setEntity(uefEntity);
            httpResponse = httpclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var11) {
            throw new Exception(var11);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    @SuppressWarnings("unused")
    private static String getHttps(String apiUrl, Map<String, String> paramPairs) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpGet httpget = new HttpGet(apiUrl);
            List<NameValuePair> params = convert(paramPairs);
            String paramsStr = EntityUtils.toString(new UrlEncodedFormEntity(params));
            httpget.setURI(new URI(apiUrl + (apiUrl.indexOf("?") == -1 ? "?" : "&") + paramsStr));
            httpResponse = httpsclient.execute(httpget);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var11) {
            throw new Exception(var11);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String postHttps(String apiUrl, Map<String, String> paramPairs){
        String body = null;
        CloseableHttpResponse httpResponse = null;
        try {
            System.out.println("--------1: {}"+apiUrl);
            HttpPost httpPost = new HttpPost(apiUrl);
            List<NameValuePair> params = convert(paramPairs);
            UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(params, "UTF-8");
            httpPost.setEntity(uefEntity);
            System.out.println("--------5");
            System.setProperty("https.protocols", "TLSv1,SSLv3");
            httpResponse = httpsclient.execute(httpPost);
            System.out.println("--------6");
            HttpEntity entity = httpResponse.getEntity();
            System.out.println("--------7");
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (httpResponse != null) {
                try {
                    httpResponse.close();
                } catch (IOException e) {
                }
            }
        }
        return body;
    }

    public static String postJsonHttps(String apiUrl, Map<String, Object> paramPairs) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            String jsonString = JSONObject.toJSONString(paramPairs);
            StringEntity paramEntity = new StringEntity(jsonString, "UTF-8");
            httpPost.addHeader("content-type", "application/json");
            httpPost.setEntity(paramEntity);
            httpResponse = httpsclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var11) {
            throw new Exception(var11);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String postJsonHttps(String apiUrl, String requestBody) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            StringEntity paramEntity = new StringEntity(requestBody, "UTF-8");
            httpPost.addHeader("content-type", "application/json");
            httpPost.setEntity(paramEntity);
            httpResponse = httpsclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var10) {
            throw new Exception(var10);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String postJson(String apiUrl, String requestBody, Map<String, String> headers) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            StringEntity paramEntity = new StringEntity(requestBody, "UTF-8");
            httpPost.addHeader("content-type", "application/json");
            if (headers != null) {
                Iterator<String> var7 = headers.keySet().iterator();

                while (var7.hasNext()) {
                    String key = (String) var7.next();
                    httpPost.addHeader(key, (String) headers.get(key));
                }
            }
            httpPost.setEntity(paramEntity);
            httpResponse = httpclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var12) {
            throw new Exception(var12);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String postJsonHttps(String apiUrl, String requestBody, Map<String, String> headers)
            throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            StringEntity paramEntity = new StringEntity(requestBody, "UTF-8");
            httpPost.addHeader("content-type", "application/json");
            if (headers != null) {
                Iterator<String> var7 = headers.keySet().iterator();

                while (var7.hasNext()) {
                    String key = (String) var7.next();
                    httpPost.addHeader(key, (String) headers.get(key));
                }
            }
            httpPost.setEntity(paramEntity);
            httpResponse = httpsclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var12) {
            throw new Exception(var12);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String putXmlHttps(String apiUrl, String requestBody) throws Exception {
        return putXmlHttps(apiUrl, requestBody, null);
    }

    public static String putXmlHttps(String apiUrl, String requestBody, Map<String, String> headers) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPut httpPost = new HttpPut(apiUrl);
            StringEntity paramEntity = new StringEntity(requestBody, "UTF-8");
            httpPost.addHeader("content-type", "application/xml");
            if (headers != null) {
                Iterator<String> var7 = headers.keySet().iterator();

                while (var7.hasNext()) {
                    String key = (String) var7.next();
                    httpPost.addHeader(key, (String) headers.get(key));
                }
            }

            httpPost.setEntity(paramEntity);
            httpResponse = httpsclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity);
            EntityUtils.consume(entity);
        } catch (Exception var12) {
            throw new Exception(var12);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    public static String requestService(String toURL, String data) throws Exception {
        StringBuffer bs = new StringBuffer();
        URL url = new URL(toURL);
        HttpURLConnection urlcon = (HttpURLConnection) url.openConnection();
        urlcon.setRequestMethod("POST");
        urlcon.setUseCaches(false);
        urlcon.setConnectTimeout(30000);
        urlcon.setReadTimeout(30000);
        urlcon.setDoInput(true);
        urlcon.setDoOutput(true);
        urlcon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        OutputStream out = urlcon.getOutputStream();
        out.write(data.getBytes("UTF-8"));
        out.flush();
        out.close();
        urlcon.connect();
        InputStream is = urlcon.getInputStream();
        BufferedReader buffer = new BufferedReader(new InputStreamReader(is));
        String l = null;

        while ((l = buffer.readLine()) != null) {
            bs.append(l);
        }
        return bs.toString();
    }

    public static String postXmlHttps(String apiUrl, String requestBody) throws Exception {
        return postXmlHttps(apiUrl, requestBody, null);
    }

    public static String postXmlHttps(String apiUrl, String requestBody, Map<String, String> headers) throws Exception {
        String body = null;
        CloseableHttpResponse httpResponse = null;

        try {
            HttpPost httpPost = new HttpPost(apiUrl);
            StringEntity paramEntity = new StringEntity(requestBody, "UTF-8");
            httpPost.addHeader("content-type", "application/xml");
            if (headers != null) {
                Iterator<String> var7 = headers.keySet().iterator();

                while (var7.hasNext()) {
                    String key = (String) var7.next();
                    httpPost.addHeader(key, (String) headers.get(key));
                }
            }

            httpPost.setEntity(paramEntity);
            httpResponse = httpsclient.execute(httpPost);
            HttpEntity entity = httpResponse.getEntity();
            body = EntityUtils.toString(entity, "UTF-8");
            EntityUtils.consume(entity);
        } catch (Exception var12) {
            throw new Exception(var12);
        } finally {
            if (httpResponse != null) {
                httpResponse.close();
            }
        }
        return body;
    }

    static {
        SSLContext sslctxt;
        try {
            sslctxt = SSLContext.getInstance("TLS");
            sslctxt.init((KeyManager[]) null, new TrustManager[] { new MyX509TrustManager() }, new SecureRandom());
        } catch (Exception var2) {
            throw new RuntimeException("https client初始化错误");
        }

        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslctxt,new String[] { "TLSv1" },
                null,
                NoopHostnameVerifier.INSTANCE);
        RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(CONNECT_TIMEOUT).setConnectionRequestTimeout(REQUEST_TIMEOUT).setSocketTimeout(SO_TIMEOUT).build();
        httpsclient = HttpClients.custom().setSSLSocketFactory(sslsf).setDefaultRequestConfig(requestConfig).setMaxConnTotal(50).build();
    }

    public static List<NameValuePair> convert(Map<String, String> pairs) {
        List<NameValuePair> result = new ArrayList<NameValuePair>();
        Iterator<String> var2 = pairs.keySet().iterator();

        while (var2.hasNext()) {
            String key = (String) var2.next();
            NameValuePair pair = new BasicNameValuePair(key, (String) pairs.get(key));
            result.add(pair);
        }
        return result;
    }
    
}

 

 

package com.infinitePossibilities.utils.requestUtils;

import javax.net.ssl.X509TrustManager;
import java.math.BigInteger;
import java.security.Principal;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class MyX509TrustManager implements X509TrustManager {
    public MyX509TrustManager() {
    }

    @Override
    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        if (null != chain) {
            for(int k = 0; k < chain.length; ++k) {
                X509Certificate cer = chain[k];
                this.print(cer);
            }
        }
        System.out.println("check client trusted. authType=" + authType);
    }
    @Override
    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
        if (null != chain) {
            for(int k = 0; k < chain.length; ++k) {
                X509Certificate cer = chain[k];
                this.print(cer);
            }
        }
        System.out.println("check servlet trusted. authType=" + authType);
    }
    @Override
    public X509Certificate[] getAcceptedIssuers() {
        System.out.println("get acceptedissuer");
        return null;
    }

    private void print(X509Certificate cer) {
        int version = cer.getVersion();
        String sinname = cer.getSigAlgName();
        String type = cer.getType();
        String algorname = cer.getPublicKey().getAlgorithm();
        BigInteger serialnum = cer.getSerialNumber();
        Principal principal = cer.getIssuerDN();
        String principalname = principal.getName();
        System.out.println("version=" + version + ", sinname=" + sinname + ", type=" + type + ", algorname=" + algorname + ", serialnum=" + serialnum + ", principalname=" + principalname);
    }
}

 

标签:body,调用,String,HttpUtils,entity,地址,new,httpResponse,null
来源: https://www.cnblogs.com/lifan12589/p/15464764.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有