java. нужно ее средставами скачать с сайта zip-архив
Посмотрите java.net.URL по части метода openConnection он Вам вернет javax.net.ssl.HttpsURLConnection для URL вида http://....
Далее, смотрите методы у java.net.HttpURLConnection (HttpsURLConnection её наследник а именно: addRequestProperty, setDoInput, setDoOutput, getInputStream, getOutputStream, setRequestMethod.
Ну а также вам придется разобраться с протоколом HTTP и тем, как реализуется аутентификация (HTTP-auth, from-based) на том сервере, с которого производится скачивание. Еще может быть придется что-нибудь с cookie реализовывать (информация по cookies вроде в гугле была для Джавы).
Далее, смотрите методы у java.net.HttpURLConnection (HttpsURLConnection её наследник а именно: addRequestProperty, setDoInput, setDoOutput, getInputStream, getOutputStream, setRequestMethod.
Ну а также вам придется разобраться с протоколом HTTP и тем, как реализуется аутентификация (HTTP-auth, from-based) на том сервере, с которого производится скачивание. Еще может быть придется что-нибудь с cookie реализовывать (информация по cookies вроде в гугле была для Джавы).
спасибо за развернутый ответ.
мне еще посоветовали использовать HttpClient для этих целей.
Я так понимаю что это альтернатива для вашего решения с java.net.URL?
мне еще посоветовали использовать HttpClient для этих целей.
Я так понимаю что это альтернатива для вашего решения с java.net.URL?
public static boolean sendMsgSSL(String URLName, String msg) {
boolean bret = false;
try {
URL url = new URL(URLName);
javax.net.ssl.HttpsURLConnection conssl = null;
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null,null,null);
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory;
conssl = (HttpsURLConnection)url.openConnection;
conssl.setHostnameVerifier(new HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
);
conssl.setDoOutput(true);
conssl.setAllowUserInteraction(true);
conssl.setRequestProperty("Content-Type", XML_CONTENT_TYPE);
conssl.setUseCaches (false);
conssl.setRequestMethod("POST");
String encoded = new String(Base64.encode(new String("yourlogin:pass").getBytes;
conssl.setRequestProperty("Proxy-Authorization", "CONFIDENTIAL " + encoded);
OutputStream os = conssl.getOutputStream;
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bosw = new BufferedWriter(osw);
bosw.write(msg);
bosw.close;
//Certificate[] crf = conssl.getLocalCertificates;
//Certificate[] srf = conssl.getServerCertificates;
bret = (conssl.getResponseCode==HttpsURLConnection.HTTP_OK);
conssl.disconnect;
}
catch (Exception e) {
System.out.println( e.toString );
}
return bret;
}
это посылка сообщения по ssl с авторизацией, тебе надо чуть изменить, а именно :
- открыть входной поток для записи файла
- поменять тип авторизации , если нужно
- поменять Content-Type в параметрах запроса
и пробовать, пробовать....

спасибо большое, буду пробовать 

HttpClient скорее всего действительно альтернатива, а на самом деле с его помощью может и проще получится, я с ним не работал. Учтите, что HttpClient - это внешняя библиотека, java.net.URL же входит в java language specification. Вообще, смотрите код 'а, у него код правильный (видимо, у него под рукой оказался, у меня под рукой не было такого, только на работе). В качестве основы для дальнейшей программы - пойдет. Единственное, что можно было сделать проще одну строчку:
Можно немного проще
Кстати
Лучще писать как
Он выведет стек вызовов, и будет видно, где произошла ошибка. e.toString такой информации не даст.
А так - разбирайтесь. Удачи
String encoded = new String(Base64.encode(new String("yourlogin:pass").getBytes;
Можно немного проще
String encoded = new String(Base64.encode("yourlogin:pass".getBytes;
Кстати
catch (Exception e) {
System.out.println( e.toString );
}
Лучще писать как
catch (Exception e) {
e.printStackTrace;
}
Он выведет стек вызовов, и будет видно, где произошла ошибка. e.toString такой информации не даст.
А так - разбирайтесь. Удачи

не подскажите, как решить такую проблему
javax.net.ssl.SSLException: SSL V2.0 servers are not supported.
Когда я пытаюсь зайти на какой либо другой адрес, то такого не возникает
javax.net.ssl.SSLException: SSL V2.0 servers are not supported.
Когда я пытаюсь зайти на какой либо другой адрес, то такого не возникает

This is correct — see the information at http://java.sun.com/products/jsse. Only SSL v3 is supported. You'll either need to upgrade the server or stick with MRJ 2.2.5, which goes through IE. That may or may not be better.
это прочитал, вот теперь интересно, неужели нет никакого выхода?
прочитай ещё раз. 

Выход может и есть. Попробуйте вместо
Варианты
Ну и заменяя SSLv3 на различные варианты: т.е. на SSLv2 или просто SSL.
Также попробуйте без кода инициализации - т.е. без строчек
(внимательнее, я там connssl.getConnection убрал).
У меня https соединение работало вообще без этого кода.
Предлагалось здесь: http://www.intellij.net/forums/thread.jspa?messageID=4997598
Кстати, по времени это позже, чем
SSLContext ctx = SSLContext.getInstance("TLS");
Варианты
SSLContext ctx = SSLContext.getInstance("SSLv3");
Ну и заменяя SSLv3 на различные варианты: т.е. на SSLv2 или просто SSL.
Также попробуйте без кода инициализации - т.е. без строчек
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(null,null,null);
HttpsURLConnection.setDefaultSSLSocketFactory(ctx.getSocketFactory;
conssl.setHostnameVerifier(new HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
);
(внимательнее, я там connssl.getConnection убрал).
У меня https соединение работало вообще без этого кода.
Предлагалось здесь: http://www.intellij.net/forums/thread.jspa?messageID=4997598
Кстати, по времени это позже, чем
This is correct — see the information at http://java.sun.com/products/jsse. Only SSL v3 is supported. You'll either need to upgrade the server or stick with MRJ 2.2.5, which goes through IE. That may or may not be better.(по адресу http://lists.apple.com/archives/java-dev/2002/Jan/msg00077.h...
Оставить комментарий
Alex1010
как это сделать, если на сайте необходима авторизация и используется SSL.(логин и пароль имеются)
Подскажите, плиз