Hy
Я пытаюсь подключить программу java к REST API.
С той же частью кода у меня есть исключение Java в Java 6 и оно отлично работает в Java 8.
Это та же среда:
- trustore
- машина
- unix пользователь
код:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class MainClass {
public static void main (String[] args){
String serviceUrl = "https://api.domain.com" + "/endpont/path";
try {
URL url = new URL(serviceUrl);
URLConnection connection = null;
try{
connection = url.openConnection();
connection.setRequestProperty("Accept", "application/json");
connection.setRequestProperty("Content-Type", "application/json");
String body = "";
String inputLine;
DataInputStream input = new DataInputStream (connection.getInputStream());
while (((inputLine = input.readLine()) != null)){
body += inputLine;
}
System.out.println(body);
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
ошибка в Java 6: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели
Кто-нибудь знает, как это отличается? Могу ли я использовать некоторые приемы, чтобы получить тот же результат в Java 6?
CN сертификата - это подстановочный знак: "* .domain.com". Это может быть причиной?
Я пробовал несколько API, но там все использовали слой SSL SSL. Вы знаете другого, чтобы заменить его?