Я пытаюсь подключиться к Интернету через прокси, дело в том, что я получаю исключение, когда устанавливаю прокси:
java.net.SocketException: Connection reset
После поиска в Google я обнаружил, что это из-за проблемы с сертификатом, Я нашел какое-то решение, которое состоит в изменении хранилища сертификатов java, но я хочу исправить это без внесения ручных / сложных изменений -> Я хочу сделать это из самого приложения JAVA, потому что хочу распространить свое приложение среди других лиц и я хочу, чтобы он выполнялся без дальнейших манипуляций.
Я пытался доверять всем сертификатам, например так:
// Create a trust manager that does not validate certificate chains
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkClientTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(
java.security.cert.X509Certificate[] certs, String authType) {
}
}
};
// Install the all-trusting trust manager
try {
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (Exception e) {
}
Та же ошибка.
Код, который я использую: как следует:
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("x.botproxy.net", 8443));
HttpURLConnection urlConnection = (HttpURLConnection) new URL("http://httpbin.org/ip").openConnection(proxy);
urlConnection.addRequestProperty("Proxy-Authorization","Basic MyProxyAuthentication==");
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String c="",l;
while ((l=bufferedReader.readLine())!=null) c+=l;
inputStream.close();
System.out.println(c);
Есть предложения?
Заранее спасибо,