HttpComponents自定义SSLSocketFactory

Iti*_*eer 5 ssl keystore apache-httpcomponents

根据http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientCustomSSL.java上的示例

SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);
Run Code Online (Sandbox Code Playgroud)

应该使用我的自定义信任库来实例化SSLSocketFactory,但是当我尝试构建我的项目时,我得到了错误

javax.net.ssl.SSLSocketFactory is abstract; cannot be intantiated
Run Code Online (Sandbox Code Playgroud)

这个例子过时了吗?它适用于其他人吗?

Bru*_*uno 11

这是org.apache.http.conn.ssl.SSLSocketFactory你应该使用的,而不是javax.net.ssl.SSLSocketFactory(参见import你正在使用的示例文件中的指令).

请注意,前者具有可以使用后者的构造函数,如果您已有此代码的现有代码.但是,你通常能获得一个自定义javax.net.ssl.SSLSocketFactory从一个SSLContext,所以你还不如使用SSLContext基于构造在这种情况下.