HttpClient with SSLCaching and a Keystore on Android
我想使用SSL客户端身份验证和SSL缓存连接到https服务器。据我所知,您只能拥有一个或另一个,而我看不出会有这样的原因。
当前,我使用的是DefaultHttpClient,它带有一个ClientConnectionManager,该客户端连接管理器已通过安装有pkcs12 KeyStore的SSLSocketFactory进行设置,因此我可以执行SSL客户端身份验证。
我还发现了可以传递SSLSessionCache的SSLCertificateSocketFactory.getHttpSocketFactory()。
然后我注册套接字工厂
1 2 | SchemeRegistry registry = new SchemeRegistry(); registry.register(new Scheme("https",socketFactory , port)); |
并使用注册表创建一个ClientConnectionManager,然后创建一个HttpClient
1 2 | ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(httpParameters, registry); httpClient = new DefaultHttpClient(ccm, httpParameters); |
但是我不知道如何给SSLSocketFactory一个SSLSessionCache或SSLCertificateSocketFactory一个密钥库
最后我研究了使用AndroidHttpClient,您可以传递一个将用于SSLCaching的上下文,但是我找不到任何方法来使AndroidHttpClient使用我的ClientConnectionManager。
我错过了什么吗?或者这真的不可能吗?
谢谢
HttpClient具有内置的SSL会话缓存,据我了解,SSLSessionCache用于HttpsURLConnection。
记录得不是很好。