websocket token认证(https 不验证证书)

直接上代码publicstaticStringtest(Stringurl,Stringhead,Stringbody)throwsException{//创建okHttpClient实例,忽略https证书验证OkHttpClientclient=newOkHttpClient().newBuilder().sslSocketFactory(getSSLSocketFactory())

大家好,又见面了,我是你们的朋友全栈君。

直接上代码

    public static String test(String url, String head, String body) throws Exception { 
   

        // 创建okHttpClient实例,忽略https证书验证
        OkHttpClient client = new OkHttpClient().newBuilder()
                .sslSocketFactory(getSSLSocketFactory())
                .hostnameVerifier(getHostnameVerifier())
                .build();

        MediaType mediaType = MediaType.parse("text/plain");
        RequestBody requestBody = RequestBody.create(mediaType, body);
        Request request = new Request.Builder()
                .url(url)
                .post(requestBody)
                .addHeader("cache-control", "no-cache")
                .addHeader("reqParamter", head)
                .build();

        Response response = client.newCall(request).execute();

        String result = response.body().string();

        return result;
    }
    /** * description 忽略https证书验证 * * @author yanzy * @version 1.0 * @date 2021/9/8 14:42 */
    public static HostnameVerifier getHostnameVerifier() { 
   
        HostnameVerifier hostnameVerifier = new HostnameVerifier() { 
   
            @Override
            public boolean verify(String s, SSLSession sslSession) { 
   
                return true;
            }
        };
        return hostnameVerifier;
    }
    /** * description 忽略https证书验证 *`在这里插入代码片` * @author yanzy * @version 1.0 * @date 2021/9/8 14:42 */
    public static SSLSocketFactory getSSLSocketFactory() { 
   
        try { 
   
            SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, getTrustManager(), new SecureRandom());
            return sslContext.getSocketFactory();
        } catch (Exception e) { 
   
            throw new RuntimeException(e);
        }
    }
    /** * description 忽略https证书验证 * * @author yanzy * @version 1.0 * @date 2021/9/8 14:42 */
    private static TrustManager[] getTrustManager() { 
   
        TrustManager[] trustAllCerts = new TrustManager[]{ 
   
                new X509TrustManager() { 
   
                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) { 
   
                    }

                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) { 
   
                    }

                    @Override
                    public X509Certificate[] getAcceptedIssuers() { 
   
                        return new X509Certificate[]{ 
   };
                    }
                }
        };
        return trustAllCerts;
    }

下一篇是 httpClient 如何忽略https证书验证

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126072.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 撸明白分布式事务(四)

    撸明白分布式事务(四)前言在分布式系统中,消息队列在服务端的架构中的地位非常重要,主要解决异步处理、系统解耦、流量削峰等场景。多个系统之间如果同步通信很容易造成阻塞,同时会将这些系统会耦合在一起。因此,引入了消息队列,一方面解决了同步通信机制造成的阻塞,另一方面通过消息队列进行业务解耦。简单的服务间调用引入mq如下图所示可靠事件模式可靠事件模式,通过引入可靠的消息队列,只要保证当前的可靠事件投递并且消息队列确保事件传递至少一次,那么订阅这个事件的消费者保证事件能够在自己的业务内被消费即可。这里,请读者思考,是否.

    2022年8月22日
    3
  • Struts2用AbstractInterceptor取代了AroundInterceptor

    Struts2用AbstractInterceptor取代了AroundInterceptorStruts2中绝大多数预建interceptor都从AbstractInterceptor扩展而来,AbstractInterceptor不在支持before、after两个抽象方法,取而代之的是intercept方法被抽象出来,交由子类去实现。其实大多数interceptor只会去实现before、after中的一个,这样就必须还要在ww中为另一个提供空方法,再由于线程安全问题WW…

    2022年5月14日
    32
  • WOW.js – 让页面滚动更有趣

    WOW.js – 让页面滚动更有趣

    2021年9月23日
    40
  • 视频识别分类算法–MASK-RCNN框架[通俗易懂]

    视频识别分类算法–MASK-RCNN框架[通俗易懂]基础内容

    2022年5月3日
    43
  • sass scss区别_scss是什么

    sass scss区别_scss是什么Sass和SCSS其实是同一种东西,我们平时都称之为Sass,两者之间不同之处有以下两点:Sass是以”.sass”后缀为扩展名,Scss是以scss后缀为扩展名Sass是以严格的缩进式语法规则书写,不带{}和分号Scss语法属性和css语法书写方式非常类似,带大括号和分号。…

    2022年10月23日
    0
  • R6010 -abort() has been called错误分析及其解决方法

    R6010 -abort() has been called错误分析及其解决方法

    2022年1月30日
    67

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号