JAVA代码(GET方式)请求URL(HTTP,HTTPS)

 

使用jdk1.8和tomcat8环境

 

 需要先引入jar或者依赖

 

 

package com.geturl;

import net.sf.json.JSONObject;
import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import javax.net.ssl.*;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;

public class PostUtil {

    /**
     *
     * @param url 这个只支持http地址,不支持https
     * @param request
     * @return
     */

    public static String sendMessage(String url, HttpServletRequest request) {
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        HttpGet httpGet = new HttpGet(url);  //url:请求地址 get请求
        httpGet.addHeader(HTTP.CONTENT_TYPE, "application/json;charset=UTF-8");
        try {
            HttpResponse res = httpClient.execute(httpGet);
            String rtn = EntityUtils.toString(res.getEntity());
            return rtn;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            httpGet.releaseConnection();
        }
        return null;
    }


    /**
     *
     *
     * @param url  支持https格式 get请求
     * @return  返回json格式
     */

    public static JSONObject getHttps(String hsUrl) {
        try {
            URL url;

            url = new URL(hsUrl);
            HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
            X509TrustManager xtm = new X509TrustManager() {
                @Override
                public X509Certificate[] getAcceptedIssuers() {
                    // TODO Auto-generated method stub
                    return null;
                }

                @Override
                public void checkServerTrusted(X509Certificate[] arg0, String arg1)
                        throws CertificateException {
                    // TODO Auto-generated method stub

                }

                @Override
                public void checkClientTrusted(X509Certificate[] arg0, String arg1)
                        throws CertificateException {
                    // TODO Auto-generated method stub

                }
            };

            TrustManager[] tm = {xtm};

            SSLContext ctx = SSLContext.getInstance("TLS");
            ctx.init(null, tm, null);

            con.setSSLSocketFactory(ctx.getSocketFactory());
            con.setHostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String arg0, SSLSession arg1) {
                    return true;
                }
            });


            InputStream inStream = con.getInputStream();
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            byte[] b = outStream.toByteArray();//网页的二进制数据
            outStream.close();
            inStream.close();
            String rtn = new String(b, "utf-8");
            if (StringUtils.isNotBlank(rtn)) {
                JSONObject object = JSONObject.fromObject(rtn);
                return object;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}

 

 

package com.util;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class GetUrlUtils {

    /**
     *
     *
     * @param url  支持https格式 get请求
     * @return  返回json格式
     */

    public static String getResponse(String url) {
        try {
            CloseableHttpClient httpClient = HttpClientBuilder.create().build();
            HttpGet httpGet=new HttpGet(url);
            HttpResponse res = httpClient.execute(httpGet);
            String rtn = EntityUtils.toString(res.getEntity());
            return rtn;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }


    
}

 

posted @ 2019-03-13 16:41  yvioo  阅读(5333)  评论(6编辑  收藏  举报