我试图让使用HTTPS调用(改造2.0,okhttp3)我已经包括SSL证书和它正常工作与
OkHttpClient.Builder builder = new OkHttpClient.Builder(); builder.sslSocketFactory(getSSLConfig());
但它显示的SSLSocketFactory(getSSLConfig())作为不推荐使用,并提供其他选项
sslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
我想更新我的代码,并使用新选项,而不是弃用的方法 我在网上搜索,但找不到任何好的参考。如果任何人可以提供一些很好的参考,这个问题将是非常有帮助的OkHttpClient.Builder的SSLSocketFactory已过时
2
A
回答
0
你需要一个有效的证书。创建信任任何SSL证书的可信OkHttpClient。试试这个代码:
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init((KeyStore) null);
TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
}
X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[] { trustManager }, null);
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
OkHttpClient client = new OkHttpClient.Builder().sslSocketFactory(sslSocketFactory, trustManager);
更多资讯:[?现在SSLSocketFactory的是在Android过时了,这将是处理客户端证书认证的最好方式]的Now that SSLSocketFactory is deprecated on Android, what would be the best way to handle Client Certificate Authentication?
相关问题
- 1. java中的SSLSocketFactory
- 2. RSpec的已过时
- 3. “的setText”已过时
- 4. 已过时的ActionBarDrawerToggle
- 5. 已过时的NameValuePair
- 6. OpenTK.Graphics.OpenGL.GL已过时?
- 7. WatchViewStub已过时
- 8. 已过时createEvenSource
- 9. MultipartEntity已过时
- 10. getAllNetworkInfo()已过时
- 11. DesiredCapabilities已过时
- 12. Windows.Phone.Media.Capture.PhotoCaptureDevice已过时...?
- 13. “System.Configuration.ConfigurationSettings.AppSettings”已过时
- 14. 'System.Reactive.Concurrency.Scheduler.NewThread'已过时
- 15. SSLCertificateChainFile已过时
- 16. Gtk.Style.Font已过时?
- 17. 已过时与已弃用的HTML
- 18. SSLSocketFactory查找在java上的道路上花费的时间
- 19. cmake add_custom_command已过时
- 20. iOS; NSAutoreleasePool已过时?
- 21. Application.LoadLevel(“string”)已过时
- 22. Microsoft.VisualBasic.Compatibility.VB6.GroupBoxArray'已过时
- 23. 超时已过期
- 24. iPhone stringWithCString已过时
- 25. 搜索已过时?
- 26. DatabaseFactory类已过时?
- 27. OpenGraphActionDialogBuilder已过时
- 28. SSLSocketFactory设置握手超时和套接字属性
- 29. 如何创建自定义SSLSocketFactory?
- 30. SSLSocketFactory verifyHostname无法解析子域
可能的复制(https://开头计算器.COM /问题/ 31002159 /现已是-的SSLSocketFactory-被弃用,上Android的东西,想成为最最好的办法-T) –