Насколько я знаю, вы не можете писать файлы из HTML5, потому что предоставление доступа к файлам пользователя на веб-странице будет представлять угрозу безопасности.
Если вам просто нужно сохранить некоторые данные поэтому ваша страница может получить к ней доступ позже, у HTML5 есть что-то, называемое веб-хранилищем, которое может это сделать.
Или вы можете хранить данные в файлах cookie (если они очень маленькие) или на сервере.
Как сказал EJP, это сообщение показано из-за вызова протокола non-https. Если вы уверены, что это HTTPS, проверьте настройки прокси-сервера обхода и в случае, если ваш URL-адрес хоста webservice в списке прокси-сервера обхода
У меня такая же проблема, и она была решена путем установки «proxyUser» и «proxyPassword» в системных свойствах.
System.setProperty("http.proxyUser", PROXY_USER);
System.setProperty("http.proxyPassword", PROXY_PASSWORD);
вместе с «proxyHost» и «proxyPort»
System.setProperty("http.proxyHost", PROXY_ADDRESS);
System.setProperty("http.proxyPort", PROXY_PORT);
Надеюсь, что это сработает.
Добавление этого в качестве ответа, поскольку это может помочь кому-то позже.
Мне пришлось заставить jvm использовать стек IPv4 для устранения ошибки. Мое приложение использовалось для работы в сети компании, но при подключении из дома оно дало то же исключение. Никакой прокси. Добавлен аргумент jvm -Djava.net.preferIPv4Stack=true
, и все запросы https
ведут себя нормально.
SSLException
? Сложно поверить. На самом деле это невозможно.
– user207421
3 July 2018 в 10:02
Теперь он работал для меня, я изменил настройку своей учетной записи google, как показано ниже:
System.out.println("Start");
final String username = "myemail@gmail.com";
final String password = "************";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "465");
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Transport transport=session.getTransport();
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("myemail@gmail.com"));//formBean.getString("fromEmail")
message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("myemail@gmail.com"));
message.setSubject("subject");//formBean.getString(
message.setText("mailBody");
transport.connect();
transport.send(message, InternetAddress.parse("myemail@gmail.com"));//(message);
System.out.println("Done");
} catch (MessagingException e) {
System.out.println("e="+e);
e.printStackTrace();
throw new RuntimeException(e);
}
Хотя я включил SSL и TSL во время запуска программы в этой ссылке того же поста. Я провожу много времени, но я понял и нашел эту ссылку. И сделали 2 следующих шага и установили контроль в google. :
Теперь я могу отправлять почту, используя указанную выше программу.
, если соединение является тестом FTPS:
FTPSClient ftpClient = новый FTPSClient (протокол, ложь);
protocol = TLS, SSL и false = isImplicit.
Я получил то же сообщение об ошибке, когда забыл войти в брандмауэр компании, прежде чем выполнять запрос POST через прокси.
Я столкнулся с этим исключением при использовании Gmail.
Чтобы использовать Gmail, мне пришлось включить «Разрешить менее безопасные приложения».
Этот параметр Gmail можно найти по адресу https://www.google.com/settings/security/lesssecureapps после входа в учетную запись gmail.
Если вы используете Java-процесс из командной строки на Java 6 или более ранней версии, добавив этот переключатель, решив проблему выше для меня:
-Dhttps.protocols = "TLSv1"
Возможно, срок действия вашего по умолчанию истек. обновить его через консоль администратора «Безопасность» SSL-сертификат и управление ключами> Хранилища ключей и сертификаты> NodeDefaultKeyStore> Личные сертификаты "выберите псевдоним по умолчанию и нажмите« возобновить »после перезапуска WAS.
Еще одна причина - «отказ в доступе», возможно, вы не можете получить доступ к URI и получить страницу ответа блокировки для внутреннего доступа к сети. Если вы не уверены, что в вашем приложении требуется правило брандмауэра, вы пытаетесь подключиться к терминалу, командной строке. Для GNU / Linux или Unix вы можете попробовать запустить эту команду и увидеть, что результат исходит из правила блокировки или действительно удаленного адреса: echo | nc -v yazilimcity.net 443
В случае, если вы запускаете
попытается остановить службу (s).
Не знаю, почему я получил голосу за этот ответ. В нашей корпоративной сети это решение проблемы.
Я сталкиваюсь с той же проблемой с Java-приложением, встроенным в Jdevelopr 11.1.1.7 IDE. Я решил проблему, сняв флажок в использовании свойств проекта proxy.
Вы можете найти его в следующем: Свойства проекта -> (из левой панели) Запуск / Отладка / Профиль -> Нажмите (изменить) форму правая панель -> Настройка инструмента с левой панели -> снимите флажок (Использовать прокси).
У меня такая же ошибка. это потому, что я обращался к порту https, используя http. Проблема была решена, когда я изменил http на https.
я решил свою проблему, используя порт 25 и следующий prop
mailSender.javaMailProperties.putAll([
"mail.smtp.auth": "true",
"mail.smtp.starttls.enable": "false",
"mail.smtp.ssl.enable": "false",
"mail.smtp.socketFactory.fallback": "true",
]);
HttpURLConnection
автоматически сделает это для вас, если вы вообще не укажете порт. – user207421 10 June 2014 в 00:54