2011-11-02 45 views
1

我想使用SSL客戶端身份驗證和SSL緩存建立與https服務器的連接。據我可以告訴你只能有一個或另一個,我沒有看到爲什麼會這樣。Android上的SSLCaching和Keystore的HttpClient

目前我正在使用一個DefaultHttpClient,它接受一個客戶端連接管理器(ClientConnectionManager),該客戶端使用裝有pkcs12 KeyStore的SSLSocketFactory進行設置,以便我可以執行SSL客戶端驗證。

我還發現SSLCertificateSocketFactory.getHttpSocketFactory()可以傳遞一個SSLSessionCache。

我再註冊的套接字工廠

SchemeRegistry registry = new SchemeRegistry(); 
registry.register(new Scheme("https",socketFactory , port)); 

,並使用註冊表來做出ClientConnectionManager然後一個HttpClient的

ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(httpParameters, registry); 
httpClient = new DefaultHttpClient(ccm, httpParameters); 

,但我不知道怎麼給無論是SSLSocketFactory的一個SSLSessionCache,或SSLCertificateSocketFactory一個密鑰存儲區

最後,我使用一個AndroidHttpClient,您可以傳遞它將使用的上下文對於SSLCaching,但我找不到任何方式讓AndroidHttpClient使用我的ClientConnectionManager。

我錯過了什麼,或者這真的不可能嗎?

感謝

回答

1

的HttpClient有SSL會話緩存內置,SSLSessionCache是​​HttpsURLConnection的,我明白。

這是不是很好的文件是它。