0
sintez1234
14.10.14
✎
15:23
|
Знаю что тема не впервые поднята, уникальный у меня случай.
Браузер в 1с, юзер заходит на сайт и проходит авторизацию руками. На веб странице внутри 1с есть список ссылок на файлы, которые хочется скачивать автоматически одной кнопкою. Текст с ссылками получить удалось из страницы, далее проблема...
Делаю так:
Функция СделатьВебЗапрос(АдресСайта, ТекстЗапроса, Защита = Неопределено) Экспорт
//
Заголовки = "User-Agent: ProjectLab 1.0 (1s@itsm.pro)";
ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
Попытка
Если Защита = Неопределено Тогда
HTTP = Новый HTTPСоединение(АдресСайта,,,,,, );
Иначе
SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
HTTP = Новый HTTPСоединение(АдресСайта,,,,,, SSL);
КонецЕсли;
HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета, Заголовки);
Исключение
КонецПопытки;
Возврат ИмяФайлаОтвета;
КонецФункции
Функция правильная! Работает. Не нужно в ней ошибки искать :) Она скачивает мне нужные файлы при условии что они в открытом доступе. Но на нужном мне сайте скачать файлы можно только после прохождения авторизации. Пользователь заранее авторизацию проходит в 1с, но это не помогает :( для 1с всё равное требуется авторизация.
Так вместо нужного файла функция скачивает страницу запроса пары логин/пароль.
Вижу варианты решения:
1) Сделать чтобы фунция тоже авторизировалось на сайте.
2) Сделать чтобы авторизация пользователя в поле HTML документа переносилась на эту функцию.
Оба варианта подходят. Подскажите как реализовать хотя бы одно из двух. Интенсивные перегугления пока не дали результата (но продолжаются).
|
|
1
sintez1234
14.10.14
✎
15:41
|
Попробовал убрать заголовки - не помогло. Всё равно юзер через 1с авторизован, а функция нет.
Функция СделатьВебЗапрос(АдресСайта, ТекстЗапроса, Защита = Неопределено) Экспорт
//
//Заголовки = "User-Agent: ProjectLab 1.0 (1s@itsm.pro)";
ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
Попытка
Если Защита = Неопределено Тогда
HTTP = Новый HTTPСоединение(АдресСайта,,,,,, );
Иначе
SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
HTTP = Новый HTTPСоединение(АдресСайта,,,,,, SSL);
КонецЕсли;
//HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета, Заголовки);
HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета);
Исключение
КонецПопытки;
Возврат ИмяФайлаОтвета;
КонецФункции
|
|
3
laeg
14.10.14
✎
16:18
|
Не взлетит. Если мне память не изменяет, при авторизации на сайте 1с открывается по очереди три жаба сессии, в итоге ты получаешь куку, используя которую ты можешь прыгать по ссылкам и качать файло.
|
|