HttpClient 4.3.x,修复已弃用的代码以使用当前的HttpClient实现

我有以下代码,仍然编译,但他们都被弃用了:

SSLSocketFactory sslSocketFactory = new SSLSocketFactory(context, SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ClientConnectionManager clientConnectionManager = base.getConnectionManager(); SchemeRegistry schemeRegistry = clientConnectionManager.getSchemeRegistry(); schemeRegistry.register(new Scheme("https", 443, sslSocketFactory)); return new DefaultHttpClient(clientConnectionManager, base.getParams()); 

我尽力用这部分代码替换它:

 HttpClientBuilder builder = HttpClientBuilder.create(); SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(context, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); builder.setConnectionManager(new BasicHttpClientConnectionManager()); builder.setSSLSocketFactory(sslConnectionFactory); return builder.build(); 

正如您所看到的,顶部post中几行代码我不知道如何包含在新部分中。 如何添加所需的代码,例如备用的SchemeRegistry

 HttpClientBuilder builder = HttpClientBuilder.create(); SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(context, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); builder.setSSLSocketFactory(sslConnectionFactory); Registry registry = RegistryBuilder.create() .register("https", sslConnectionFactory) .build(); HttpClientConnectionManager ccm = new BasicHttpClientConnectionManager(registry); builder.setConnectionManager(ccm); return builder.build(); 

我还不能评论,但这是对herau答案的一个小升级,因为它自4.4以来被弃用,也许有人会发现它很有用。

 SSLConnectionSocketFactory sslConnectionFactory = new SSLConnectionSocketFactory(context, NoopHostnameVerifier.INSTANCE);