Имя: Пароль:
1C
 
1C умеет принимать cookie?
,
0 zyto
 
19.01.15
17:18
1С:Предприятие 8.3 (8.3.5.1248)

Делаю POST запрос:
// Подготовить файл для POST запроса

POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС);
POSTПараметры.Записать("login=" + Логин + "&password=" + Пароль);
POSTПараметры.Закрыть();

// Определить заголовки POST, используя алгоритм "application/x-www-form-urlencoded"

POSTЗаголовки = Новый Соответствие();
POSTЗаголовки.Вставить("POST "+АдресСтраницыАвторизации+" HTTP/1.1");
POSTЗаголовки.Вставить("Host", АдресСервера);
POSTЗаголовки.Вставить("Referer", "http://";+АдресСервера);
POSTЗаголовки.Вставить("Connection", "keep-alive");
POSTЗаголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");

// Отправляем POST запрос

Попытка
    ОтветHTTP = Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, АдресСтраницыАвторизации, ИмяВыходногоФайла, POSTЗаголовки);
Исключение
    Сообщить("Неудачная попытка соединения с " + АдресСервера + ": " + ОписаниеОшибки());
    Возврат;
КонецПопытки;


После этого ОтветHTTP.КодСостояния = 302, и ОтветHTTP.Заголовки["Location"] - это страница, где написано:

Ваш браузер не поддерживает cookies, либо поддержка выключена.

Для работы с нашим магазином Вам необходимо включить поддержку cookies в Вашем браузере.

Инструкция для браузера Internet Explorer:
Сервис, далее Свойства обозревателя
Выбираете закладку Безопасность, ставите уровень безопасности Средний

Выставил в IE уровень безопасности средний, не помогло, видимо 1С использует какой-то свой встроенный браузер? Как разрешить принимать кукисы?
1 zyto
 
19.01.15
17:35
Никто не сталкивался?
2 Гёдза
 
19.01.15
17:38
умеет
3 zyto
 
19.01.15
17:39
Что сделать что бы кукисы нормально принимались?
4 Гёдза
 
19.01.15
17:40
5 Dolphinbet
 
19.01.15
17:46
Кукисы принимаются - их надо сохранять и при последующих обращениях к серверу отправлять
6 Гёдза
 
19.01.15
17:50
скорее всего ты посылаешь запрос без ранее полученных кукисов
7 zyto
 
19.01.15
18:00
(6)Ага, похоже на то... Надо несколько раз на один и тот же адрес перейти, что бы кукисы нормально инициализировались.
Спасибо за наводку!
8 zyto
 
19.01.15
18:03
(7)*это для моего случая, в других случаях возможно надо по разным страницам ходить, что бы нужные куки собрать...
9 Гёдза
 
19.01.15
18:20
юзай фидлер
10 zyto
 
19.01.15
19:25
(9)О, то чего не хватало :)
Благодарю!
11 zyto
 
21.01.15
07:31
На всякий случай, вдруг кому поможет...
В моём случае не взлетело использование кукисов как есть, т.е.
...
GETЗаголовки.Вставить("Cookie", ОтветHTTP.Заголовки["Set-Cookie"]);
...
ОтветHTTP = Соединение.Получить(АдресСтраницы, ИмяВыходногоФайла, GETЗаголовки);

Предыдущие методы мне выдавали куки вида:
"ИмяПараметра=Значение;СрокДействия;домен;/"
А сайт хотел что бы ему присылали "чистые" куки, вида
"ИмяПараметра=Значение;"
Поэтому пришлось парсить строку и вытаскивать нужные значения кук... Если у вас не работает авторизация - проверьте, передаёте ли вы чистые куки.
Ошибка? Это не ошибка, это системная функция.