Имя: Пароль:
1C
1С v8
Авторизация с помощью cookies на сайте для работы с внешним web-сервисом
0 Глеар
 
10.09.15
17:27
Всем привет. Есть внешний веб сервис. На него в конфигурации создана WS-ссылка. Я создаю прокси и начинаю работать с методами веб сервиса.
Ранее я с этим веб-сервисом обменивались данными в рамках одной сессии с помощью id сессии, которые я получала при выполнении метода Login, и дальше передавала в каждый метод в определенном параметре. Выглядело это так:
WSПрокси = WSСсылки.Rv4.СоздатьWSПрокси("R", "S", "K");
ТипЗапроса=WSПрокси .ФабрикаXDTO.Тип("R", "SessionData");
    
запрос = WSПрокси .ФабрикаXDTO.Создать(ТипЗапроса);

запрос.login="какойтологин";
запрос.password="пароль";
    
ИДСессии=WSПрокси .Login(запрос);
        


Теперь разработчики изменили свой веб-сервис и просят работать с рамках одной сессии на сайте с помощью cookies. В SOAPUI я вижу что в заголовке ответа на выполнение Login мне приходят куки, но как их получить в 1С и что с ними делать дальше?
Сейчас я выполняю метод логин, он успешно проходит, но далее при выполнении любого другого метода выходит ошибка "Вы не прошли аутентификацию". и все.

Кто сталкивался, расскажите как работать с куки.
1 Fragster
 
гуру
10.09.15
17:36
никак, либо basic авторизация, либо через параметр. куки не поддерживаются.

либо писать свою прослойку-прокси например на php, либо работать с помощью HTTPЗапрос и фабрикой XDTO вручную
2 Serginio1
 
10.09.15
17:47
Либо использовать сборки Net
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
3 Fragster
 
гуру
10.09.15
17:49
(2) в данном случае не особо сложно через HTTP запрос работать, через дотнет больше кода получится.
4 Serginio1
 
10.09.15
18:46
(3) Кода то ка раз по минимуму даже меньше чем с 1С прокси фабриками итд.
5 Глеар
 
11.09.15
09:35
Спасибо за подсказку. Придется всю выгрузку перерабатывать. попробую сделать через HTTP  запрос.
6 Serginio1
 
11.09.15
10:22
(5) Да уж мы не ищем легких путей. Удачи.
Ты не первый v8: soap:Header
7 Глеар
 
17.09.15
13:25
В общем я перешла на HТТР запрос. Получила ответ, забрала из него куки. Но вообще говоря, я надеялась что в теле ответа мне придут те же параметры, которые я получала в ответе при выполнения метода на веб сервисе)).
Ранее я выполняла метод Login и в ответ мне приходил уникальный идентификатор пользователя на сайте:
<LoginResult xmlns:i="http://www.w3.org/2001/XMLSchema-instance">;
    <OutStatus>Success</OutStatus>
    <ID>3023</ID>
</LoginResult>


Сейчас в ответе на выполнения HTTP запроса у меня нет этого параметра. Может его искать надо не в теле ответа?
8 Fragster
 
гуру
17.09.15
13:26
(7) ищи в заголовке
9 Глеар
 
17.09.15
14:13
в заголовке нет. Потому что я обращаюсь не к  сервисам апи, а к веб-интерфейсу. Но как обратиться к сервиса апи? мне не надо работать с веб интерфейсом.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший