zoukankan      html  css  js  c++  java
  • Java通过OKHttp发送https请求(忽略认证)

    封装:

    package gj.okhttp3;
    
    import okhttp3.OkHttpClient;
    
    import javax.net.ssl.SSLContext;
    import javax.net.ssl.SSLSocketFactory;
    import javax.net.ssl.TrustManager;
    import javax.net.ssl.X509TrustManager;
    import java.security.KeyManagementException;
    import java.security.NoSuchAlgorithmException;
    
    /**
     * Author: areful
     * Date: 2019/2/15
     */
    public class OKHttpClientBuilder {
        public static OkHttpClient.Builder buildOKHttpClient() {
            try {
                TrustManager[] trustAllCerts = buildTrustManagers();
                final SSLContext sslContext = SSLContext.getInstance("SSL");
                sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
    
                final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
                OkHttpClient.Builder builder = new OkHttpClient.Builder();
                builder.sslSocketFactory(sslSocketFactory, (X509TrustManager) trustAllCerts[0]);
                builder.hostnameVerifier((hostname, session) -> true);
                return builder;
            } catch (NoSuchAlgorithmException | KeyManagementException e) {
                e.printStackTrace();
                return new OkHttpClient.Builder();
            }
        }
    
        private static TrustManager[] buildTrustManagers() {
            return new TrustManager[]{
                    new X509TrustManager() {
                        @Override
                        public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {
                        }
    
                        @Override
                        public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {
                        }
    
                        @Override
                        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
                            return new java.security.cert.X509Certificate[]{};
                        }
                    }
            };
        }
    }
    

    测试:

    package gj.okhttp3;
    
    import okhttp3.*;
    
    import java.io.IOException;
    import java.util.HashMap;
    
    /**
     * Author: areful
     * Date: 2019/2/15
     */
    public class TestOKHttpClientBuilder {
        public static void main(String[] args) {
            MediaType JSON = MediaType.parse("application/json; charset=utf-8");
            String url = "https://www.baidu.com";
            String json = "{}";
            Request request = new Request.Builder()
                    .url(url)
                    .headers(Headers.of(new HashMap<>()))
                    .post(RequestBody.create(JSON, json))
                    .build();
            OKHttpClientBuilder.buildOKHttpClient()
                    .build()
                    .newCall(request)
                    .enqueue(new Callback() {
                        @Override
                        public void onFailure(Call call, IOException e) {
                            System.out.println("onFailure()");
                            e.printStackTrace();
                        }
    
                        @Override
                        public void onResponse(Call call, Response response) {
                            System.out.println("onResponse()");
                        }
                    });
        }
    }
    

      

  • 相关阅读:
    PO BO VO DTO POJO DAO DO这些Java中的概念分别指一些什么?
    前端面试题汇总(待续)
    vue lottie vue-lottie : 使用教程
    webstorm 换行时 代码不对齐
    webstorm 导出编辑器配置.editorconfig
    vue 查看dist文件里的结构
    vue-cli 生产打包
    element form 校验数组每一项
    typescript无法识别vue中的$refs
    mac 10.14.5 [vue create的时候 mkdir没有权限]
  • 原文地址:https://www.cnblogs.com/areful/p/10381859.html
Copyright © 2011-2022 走看看