2018-02-08 HTTPS证书问题、PKIX或者证书过期问题解决方案

自己去写一个假的 安全验证

private static class TrustAnyTrustManager implements X509TrustManager

    {

        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException

        {

        }

        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException

        {

        }

        public X509Certificate[] getAcceptedIssuers()

        {

            return new X509Certificate[]{};

        }

    }

    private static class TrustAnyHostnameVerifier implements HostnameVerifier

    {

        public boolean verify(String hostname, SSLSession session)

        {

            return true;

        }

    }

    public static String connect(String url) throws Exception

    {

        InputStream in = null;

        OutputStream out = null;

        byte[] buffer = new byte[4096];

        String str_return = "";

        try

        {

//            URL console = new URL(url);

            URL console = new URL(new String(url.getBytes("utf-8")));

            HttpURLConnection conn = (HttpURLConnection) console.openConnection();

            //如果是https

            if (conn instanceof HttpsURLConnection)

            {

                SSLContext sc = SSLContext.getInstance("SSL");

                sc.init(null, new TrustManager[]{new TrustAnyTrustManager()}, new java.security.SecureRandom());

                ((HttpsURLConnection) conn).setSSLSocketFactory(sc.getSocketFactory());

                ((HttpsURLConnection) conn).setHostnameVerifier(new TrustAnyHostnameVerifier());

            }

//            conn.setRequestProperty("Content-type", "text/html");

//            conn.setRequestProperty("Accept-Charset", "GBK");

//            conn.setRequestProperty("contentType", "GBK");

//            conn.setRequestMethod("POST");

//            conn.setDoOutput(true);

//            conn.setRequestProperty("User-Agent", "directclient");

//            PrintWriter outdate = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(),"utf-8"));

//            outdate.println(url);

//            outdate.close();

            conn.connect();

            InputStream is = conn.getInputStream();

            DataInputStream indata = new DataInputStream(is);

            String ret = "";

            while (ret != null)

            {

                ret = indata.readLine();

                if (ret != null && !ret.trim().equals(""))

                {

                    str_return = str_return + new String(ret.getBytes("ISO-8859-1"), "utf-8");

                }

            }

            conn.disconnect();

        } catch (Exception e)

        {

            throw e;

        } finally

        {

            try

            {

                in.close();

            } catch (Exception e)

            {

            }

            try

            {

                out.close();

            } catch (Exception e)

            {

            }

        }

        return str_return;

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,989评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,812评论 19 139
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 7,421评论 0 17
  • 人生的有些经历,就像时间打下的烙印。即使有岁月的洗礼,也会有星星点点的回忆。 曾经有一段维持了三年...
    巷子阅读 277评论 0 1
  • 在厅堂和厨房之间,抑或说之外的好是什么?是画卷,山水,眉目,文人意象。如有一女子从丝绵画卷,烟水故书走出!款款于...
    一枚绘女子阅读 951评论 1 2

友情链接更多精彩内容