Всем привет, требуется скачать pdf файл, который динамически генерируетcя aspx скриптом. Вебдрайвер код фрейма с pdf не видит. Не понимаю как и чем лучше сформировать запрос для загрузки с авторизацией на java.
Взять обёртку над rest, выполнить запрос с авторизацией и скачать, в чём проблема не пойму?
Если известен адрес pdf и поддерживается авторизация через RFC 1728, т.е. user:password@host:port/url-path тогда передаём логин-пароль с урлой в драйвер и качаем.
Если авторизация через куку и опять таки есть ссылка на файл, тогда надо взять куки у драйвера, пройти по нем итератором и выдрать нужную, а после этого подсунуть её классу, который умеет открывать соединение с кукой, например вот мой костыль:
Set cookies = driver.manage().getCookies();
Iterator itr = cookies.iterator();
//get proper cookie
Cookie cookie = itr.next();
loginToken = cookie.getValue();
//open connection
HttpURLConnection con = (HttpURLConnection) new URL(“URL_TO_PDF”).openConnection();
con.setRequestMethod(“GET”);
//pass cookie to http client
con.addRequestProperty(“Cookie”, “login-token=”+loginToken);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
Я не говорю, что этот метод лучший, или даже просто правильный, но для меня он сработал. Не уверен, что сработает для вас, т.к. судя по описанию задачи ссылки на файл у вас может и не быть.