在使用 Spring 的 RestTemplate 时,我需要使用 HttpClient 来设置某些参数。
我目前通过以下方式执行此操作:
HttpClient httpClient = new HttpClient();
httpClient.getParams().setSoTimeout(prefs.getServerTimeout());
httpClient.getParams().setConnectionManagerTimeout(3000);
httpClient.getParams().setContentCharset("UTF-8");
httpClient.getParams().setCredentialCharset("ISO-8859-1", )
...
CommonsClientHttpRequestFactory requestFactory = new CommonsClientHttpRequestFactory(httpClient);
requestFactory.setReadTimeout(prefs.getServerTimeout());
RestTemplate restTemplate = new RestTemplate(requestFactory);
目前到处都在使用的 HttpClient,例如在
HttpComponentsClientHttpRequestFactory.getHttpClient()
指向 Android 附带的已弃用的。
由于它已被弃用,并在 6.0 中从 Android 中删除,我该如何继续使用带有 RestTemplate 的 HttpClient 对象?
由于它们共享相同的包(org.apache.http.client),我不确定如何在 6.0 之前/之后使其工作。
(我尝试在不设置 HttpClient 的情况下使用 httpclient-android 和 HttpComponentsClientHttpRequestFactory,然后它似乎正在使用 CloseableHttpClient。但方法签名是前面提到的已弃用的 HttpClient。)
指针将不胜感激。