﻿{"id":756,"date":"2021-10-20T21:10:47","date_gmt":"2021-10-20T13:10:47","guid":{"rendered":"http:\/\/blog.sway.com.cn\/?p=756"},"modified":"2021-10-20T21:10:47","modified_gmt":"2021-10-20T13:10:47","slug":"%e4%bd%bf%e7%94%a8okhttp3%e6%97%b6%e5%bf%bd%e7%95%a5%e6%89%80%e6%9c%89%e8%af%81%e4%b9%a6","status":"publish","type":"post","link":"http:\/\/blog.sway.com.cn\/?p=756","title":{"rendered":"\u4f7f\u7528okhttp3\u65f6\u5ffd\u7565\u6240\u6709\u8bc1\u4e66"},"content":{"rendered":"<p>1\u3001\u65b0\u5efa\u4e00\u4e2aSSLSocketClient.java\u7c7b\uff1a<\/p>\n<pre class=\"lang:default decode:true \">import java.security.SecureRandom;\r\nimport java.security.cert.X509Certificate;\r\n\r\nimport javax.net.ssl.HostnameVerifier;\r\nimport javax.net.ssl.SSLContext;\r\nimport javax.net.ssl.SSLSession;\r\nimport javax.net.ssl.SSLSocketFactory;\r\nimport javax.net.ssl.TrustManager;\r\nimport javax.net.ssl.X509TrustManager;\r\n\r\npublic class SSLSocketClient {\r\n\r\n    \/\/\u83b7\u53d6\u8fd9\u4e2aSSLSocketFactory\r\n    public static SSLSocketFactory getSSLSocketFactory() {\r\n        try {\r\n            SSLContext sslContext = SSLContext.getInstance(\"SSL\");\r\n            sslContext.init(null, getTrustManager(), new SecureRandom());\r\n            return sslContext.getSocketFactory();\r\n        } catch (Exception e) {\r\n            throw new RuntimeException(e);\r\n        }\r\n    }\r\n\r\n    \/\/\u83b7\u53d6TrustManager\r\n    private static TrustManager[] getTrustManager() {\r\n        TrustManager[] trustAllCerts = new TrustManager[]{\r\n                new X509TrustManager() {\r\n                    @Override\r\n                    public void checkClientTrusted(X509Certificate[] chain, String authType) {\r\n                    }\r\n\r\n                    @Override\r\n                    public void checkServerTrusted(X509Certificate[] chain, String authType) {\r\n                    }\r\n\r\n                    @Override\r\n                    public X509Certificate[] getAcceptedIssuers() {\r\n                        return new X509Certificate[]{};\r\n                    }\r\n                }\r\n        };\r\n        return trustAllCerts;\r\n    }\r\n\r\n    \/\/\u83b7\u53d6HostnameVerifier\r\n    public static HostnameVerifier getHostnameVerifier() {\r\n        HostnameVerifier hostnameVerifier = new HostnameVerifier() {\r\n            @Override\r\n            public boolean verify(String s, SSLSession sslSession) {\r\n                return true;\r\n            }\r\n        };\r\n        return hostnameVerifier;\r\n    }\r\n\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>2\u3001\u4f7f\u7528\u4ee5\u4e0b\u4ee3\u7801\u6765\u6784\u5efaokhttp3\u5373\u53ef\uff1a<\/p>\n<pre class=\"lang:default decode:true \">OkHttpClient.Builder mBuilder = new OkHttpClient.Builder();\r\nmBuilder.sslSocketFactory(SSLSocketClient.getSSLSocketFactory());\r\nmBuilder.hostnameVerifier(SSLSocketClient.getHostnameVerifier());\r\nOkHttpClient client = mBuilder.build();<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u65b0\u5efa\u4e00\u4e2aSSLSocketClient.java\u7c7b\uff1a import java.security.Secur [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[222],"tags":[],"class_list":["post-756","post","type-post","status-publish","format-standard","hentry","category-android"],"_links":{"self":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=756"}],"version-history":[{"count":1,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/756\/revisions"}],"predecessor-version":[{"id":757,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=\/wp\/v2\/posts\/756\/revisions\/757"}],"wp:attachment":[{"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=756"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.sway.com.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}