У меня досадная проблема, возможно, кто-то уже обратился.
У меня есть решение, которое подключается к странице HTTPS (вы загружаете сертификат в случае его отсутствия или изменения), предоставляет пароль сертификата, а затем отправляет данные.
До недавнего времени я использовал этот код, который отлично работал
Protocol authhttps = new Protocol("https", new org.apache.commons.httpclient.contrib.ssl.AuthSSLProtocolSocketFactory(keyStoreKeys, qCertPassword, null, qCertPassword), 443);
Protocol.registerProtocol("https", authhttps);
WebClient webClient = new WebClient(BrowserVersion.FIREFOX_3);
DefaultCredentialsProvider userCredentials = (DefaultCredentialsProvider) webClient.getCredentialsProvider();
userCredentials.addCredentials(qUsername, qPassword, host, 443, realm);
webClient.setCredentialsProvider(userCredentials);
HtmlPage page = webClient.getPage(SiteHttpsUrl);
Сертификат загружен клиенту; если я иду на страницу входа с OpenConnection, не дает ошибок. Сертификат НЕ самоподписан, и я не использую прокси.
Но теперь протокол производителя (org.apache.commons.httpclient.protocol.Protocol
с JDK 1.6.0_18
и HTTPclient 3.1
или выше), который содержал AuthSSLProtocolSocketFactory
, устарел и больше не может подавать, что приводит к ошибке защиты 403, запуск getPage
.
Мне нужно использовать WebClient
для симуляции нажатий кнопок и ссылок.
Что я могу сделать?