Apache HttpClient - параметр trustAnchors должен быть не пустым
Я пытаюсь написать простой httpclient для доступа к веб-сайтам https, но получаю неожиданную ошибку: java.security.InvalidAlgorithmParameterException:
public SyncHttpClient()
{
System.setProperty("javax.net.ssl.trustStore","C:/Program Files/Java/jre1.8.0_152/lib/security");
System.setProperty("javax.net.ssl.trustStorePassword","changeit");
DefaultProxyRoutePlanner routePlanner=this.setProxy();
client = HttpClients.custom().setRoutePlanner(routePlanner).build();
}
public String getAPI(String url) throws Exception
{
try{
HttpGet request = new HttpGet(url);
String responseBody = null;
ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
@Override
public String handleResponse(
final HttpResponse response) throws ClientProtocolException, IOException {
int status = response.getStatusLine().getStatusCode();
if (status >= 200 && status < 300) {
HttpEntity entity = response.getEntity();
return entity != null ? EntityUtils.toString(entity) : null;
} else {
throw new ClientProtocolException("Error");
}
}
};
try{
responseBody = client.execute(request, responseHandler);
System.out.println("----------------------------------------");
System.out.println(responseBody);
}catch(Exception e){
e.printStackTrace();
}
}
finally
{
client.close();
}
return responseBody.toString();
}
- Я устанавливаю хранилище доверенных сертификатов по умолчанию, используя:
System.setProperty ("javax.net.ssl.trustStore", "C: / Program Files / Java / jre1.8.0_152 / lib / security"); System.setProperty ("javax.net.ssl.trustStorePassword", "changeit");