Имя: Пароль:
1C
1С v8
Авторизация на сайте
,
0 sintez1234
 
14.10.14
15:23
Знаю что тема не впервые поднята, уникальный у меня случай.

Браузер в 1с, юзер заходит на сайт и проходит авторизацию руками. На веб странице внутри 1с есть список ссылок на файлы, которые хочется скачивать автоматически одной кнопкою. Текст с ссылками получить удалось из страницы, далее проблема...

Делаю так:

Функция СделатьВебЗапрос(АдресСайта, ТекстЗапроса, Защита = Неопределено) Экспорт
    
    //https://github.com/hhru/api/blob/master/docs/general.md

    Заголовки = "User-Agent: ProjectLab 1.0 ([email protected])";
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
    Попытка
        Если Защита = Неопределено Тогда
            HTTP = Новый HTTPСоединение(АдресСайта,,,,,, );
        Иначе
            SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
            HTTP = Новый HTTPСоединение(АдресСайта,,,,,, SSL);
        КонецЕсли;
        HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета, Заголовки);
    Исключение
    КонецПопытки;
    Возврат ИмяФайлаОтвета;
КонецФункции

Функция правильная! Работает. Не нужно в ней ошибки искать :) Она скачивает мне нужные файлы при условии что они в открытом доступе. Но на нужном мне сайте скачать файлы можно только после прохождения авторизации. Пользователь заранее авторизацию проходит в 1с, но это не помогает :( для 1с всё равное требуется авторизация.

Так вместо нужного файла функция скачивает страницу запроса пары логин/пароль.

Вижу варианты решения:
1) Сделать чтобы фунция тоже авторизировалось на сайте.
2) Сделать чтобы авторизация пользователя в поле HTML документа переносилась на эту функцию.

Оба варианта подходят. Подскажите как реализовать хотя бы одно из двух. Интенсивные перегугления пока не дали результата (но продолжаются).
1 sintez1234
 
14.10.14
15:41
Попробовал убрать заголовки - не помогло. Всё равно юзер через 1с авторизован, а функция нет.

Функция СделатьВебЗапрос(АдресСайта, ТекстЗапроса, Защита = Неопределено) Экспорт
    
    //https://github.com/hhru/api/blob/master/docs/general.md

    //Заголовки = "User-Agent: ProjectLab 1.0 ([email protected])";
    ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
    Попытка
        Если Защита = Неопределено Тогда
            HTTP = Новый HTTPСоединение(АдресСайта,,,,,, );
        Иначе
            SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);
            HTTP = Новый HTTPСоединение(АдресСайта,,,,,, SSL);
        КонецЕсли;
        //HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета, Заголовки);
        HTTP.Получить(ТекстЗапроса, ИмяФайлаОтвета);
    Исключение
    КонецПопытки;
    Возврат ИмяФайлаОтвета;
КонецФункции
2 anatoly
 
14.10.14
15:56
что мешает функции открыть страницу входа, заполнить поля логин/пароль, отправить форму и после этого качать?
3 laeg
 
14.10.14
16:18
Не взлетит. Если мне память не изменяет, при авторизации на сайте 1с открывается по очереди три жаба сессии, в итоге ты получаешь куку, используя которую ты можешь прыгать по ссылкам и качать файло.