Имя: Пароль:
1C
1С v8
Работа с сайтами, требующими аутентификации.
,
0 borrman
 
03.04.12
15:50
Добрый день
Платформа 8.2.15.301

Требуется получить данные с сайта.
Есть логин/пароль
Соединение HTTPS.
Сертификаты получил, интегрировал их в файл cacert.pem.
Работа метода ОтправитьДляОбработки проходит нормально.
Но как дальше быть - непонятно
1) возращается мне  HTML-файл с текстом:



Object moved
Object MovedThis object may be found here.




Посмотрев пакеты вижу, что возвращается статус ошибки 302. Как его поймать? Или файл разбирать?

2) после логина мне нужно перейти на определенную страницу, которая доступна только после логина. Как это сделать? Мне нужно передать ID сессии насколько я понял. Он хранится в куках. де их взять?

Спасибо.
1 oleg_km
 
03.04.12
16:12
ну так нужно следующий запрос направить, но по адресу этого Move
2 oleg_km
 
03.04.12
16:13
Куки должны сами сохраняться прозрачно для разработчика
3 borrman
 
03.04.12
18:59
>ну так нужно следующий запрос направить, но по адресу этого Move
Да. Я бы перешел, но, например, некоторые сайты возвращают пустую страницу, а данные для перехода в заголовке, который недоступен. Т.е. я даже не знаю урл по которому меня отправили.

>Куки должны сами сохраняться прозрачно для разработчика
Видимо или не хранятся или как-то хитро нужно обрабатывать. Т.е. логиниться у меня получается, но следующая страница вываливает опять на страницу логина. Как будто не передаются параметры сессии.
4 borrman
 
04.04.12
01:16
подниму. тема все еще актуальна
5 xard
 
04.04.12
10:35
Тоже интересно как работать только с помощью 1Совских методов. Я использовал костыль из python и его так сказать расширения mechanize (http://habrahabr.ru/post/129224/)
6 oleg_km
 
04.04.12
11:56
Когда надоест иметь половую связь с HTTPСоединение советую посмотреть в сторону WinHTTP
7 Wobland
 
04.04.12
11:58
ничего не понял, но я вот так пробовал отсюда получать (и получалось):

Попытка
   http=Новый HTTPСоединение("www.forum.mista.ru", 80, "Wobland", "", Прокси);
Исключение
   Сообщить(ОписаниеОшибки());
КонецПопытки;

Попытка
   http.Получить("users_photo/***.jpg", "c:\gotit");
Исключение
   Сообщить(ОписаниеОшибки());
КонецПопытки;
8 pumbaEO
 
04.04.12
12:00
(5) Я бы curl и wget использовал.
9 xard
 
04.04.12
12:09
(8) можно и это использовать конечно, кому что ближе..
10 oleg_km
 
04.04.12
12:32
(9) мне ближе все, что работает и обламывается при выпуске новых релизов платформы
11 borrman
 
05.04.12
00:39
(7) А если редирект? Не работает (
12 oleg_km
 
05.04.12
09:21
(11) А он содержание не читает, только заголовок.
13 oleg_km
 
05.04.12
09:23
Кстати, WinHTTP гад редирект сам обрабатывает. Ты запрашиваешь исходную страницу, а получаешь, ту которая должна была получиться с редиректа. Хотя возможно это какой-то флаг настройки.
14 borrman
 
05.04.12
10:43
(13) как раз то, что нужно
А что это за WinHHTP?
15 le_
 
05.04.12
10:50
WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
16 borrman
 
05.04.12
10:56
Не. Это я все читал/видел. Просто не пойму - он входит в состав винды или идет как отдельная какая-то установка?
17 le_
 
05.04.12
10:59
With version 5.1, WinHTTP is now an operating-system component of the following operating systems:

   Windows 2000, Service Pack 3 and later (except Datacenter Server)
   Windows XP with Service Pack 1 (SP1) and later
   Windows Server 2003 with Service Pack 1 (SP1) and later
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан