Вход | Регистрация


Веб-сервис и Cookie

Веб-сервис и Cookie
Я
   serezhka
 
19.06.18 - 12:26
Здравствуйте!
Борюсь с очередным веб-сервисом по поиску и заказу автозапчастей:
http://service.autopiter.ru/price.asmx?WSDL

Написал вот такой код:

URL = "http://service.autopiter.ru/price.asmx?WSDL";; 

Определения = Новый WSОпределения(Строка(URL));
СервисWS    = Новый WSПрокси(Определения ,"http://www.autopiter.ru/","Price","PriceSoap";);
Authorization = СервисWS.Authorization("Логин","Пароль",true);
FindCatalog = СервисWS.FindCatalog("OC47");

На последней строчке выбивает ошибку:
Ошибка вызова операции сервиса:  {http://www.autopiter.ru/}:Price:FindCatalog()
по причине:
Ошибка SOAP сервера:  Превышено количество запросов к веб сервису. Вы блокированы на текущие сутки

Проблема с передачей куки-контейнера, а точнее в отсутствии этой передачи.

У них на сайте показан пример на ASP.NET:

// Создание куки контейнера, для 

// передачи данных авторизации, не авторизованные пользователи не могут получить данные
// от функции: FindCatalog, GetPrice,GetPriceId


System.Net.CookieContainer cookCon = new CookieContainer();

//Создаем экземпляр класса прокси клиента, который использует SOAP протокол


WebReference.Price w = new WebApplication2.WebReference.Price();

//w.Url должен быть: "http://service.autopiter.ru/price.asmx";
//Устанавливаем куки-контейнер


w.CookieContainer = cookCon;
w.Timeout = 10000;

Как такое сделать в 1С, помогите кто разбирается?
 
 
   Cyberhawk
 
1 - 19.06.18 - 12:28
Ничего такого в 1С нет. Только вручную сформированные ХТТП-заросы тебе помогут.
   Cyberhawk
 
2 - 19.06.18 - 12:28
Веб-сервисы 1С - это тоже ХТТП-запросы, только формируемые и иногда частично проверяемыена валидность платформой
   serezhka
 
3 - 19.06.18 - 12:33
(1) а случайно нету примера ХТТП-зароса с передачей кукиз?
   VS-1976
 
4 - 19.06.18 - 12:33
HTTPСоединение + ( HTTPЗапрос + Заголовки.Вставить( "Cookie",  ) возможно прокатит
   VS-1976
 
5 - 19.06.18 - 12:35
Примерно так:

пСоединение = Новый HTTPСоединение( URL, , , , , , Новый ЗащищенноеСоединениеOpenSSL() );

оHTTPЗапрос = Новый HTTPЗапрос( Адрес );
пЗаголовки    = оHTTPЗапрос.Заголовки;
пЗаголовки.Вставить( "Cookie", ТутКуки );

оHTTPОтвет = пСоединение.Получить( оHTTPЗапрос );
   mistеr
 
6 - 19.06.18 - 12:44
(0) Зачем им куки, если аутентификация в каждом запросе?
   Cyberhawk
 
7 - 19.06.18 - 12:45
(6) Видимо без куки любые запросы (хоть с логином-паролем, хоть без оного) бородятся из каких-нибудь соображений безопасности
   Cyberhawk
 
8 - 19.06.18 - 12:45
(3) Нет, под рукой ничего такого нет
   serezhka
 
9 - 20.06.18 - 15:14
Написал вот такой код, но тоже куки не работают почему-то:

        АдресСервиса = "http://service.autopiter.ru/price.asmx";;
        

        WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
        WinHttp.open("POST", АдресСервиса, 0);
        WinHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
        WinHttp.setRequestHeader("Content-Length", СтрДлина(Запрос));      
        WinHttp.send(Запрос);
        Куки = WinHttp.getResponseHeader("Set-cookie");

    Запрос = "<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/""; xmlns:aut=""http://www.autopiter.ru/"">;
    |        <soapenv:Header/>
    |        <soapenv:Body>
    |        <aut:FindCatalog> <aut:ShortNumberDetail>"
    + "OC47" + "</aut:ShortNumberDetail>    
    |        </aut:FindCatalog>
    |        </soapenv:Body>
    |        </soapenv:Envelope>";

    WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
    WinHttp.open("POST", АдресСервиса, 0);
    WinHttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    WinHttp.setRequestHeader("Content-Length", СтрДлина(Запрос));
    WinHttp.SetRequestHeader("Cookie", Куки);
    WinHttp.send(Запрос);

Может кто шарит в этом, помогите пожалуйста.
   serezhka
 
10 - 20.06.18 - 15:17
(9) В переменную Куки записываются данные:
 
 Рекламное место пустует
   serezhka
 
11 - 20.06.18 - 15:18
(9) В переменную Куки записываются данные: AuthCoocies=010280AA0C12A7D6D508FE805A757F35EFD50801023200300000012F00FF; expires=Sat, 21-Jul-2018 18:12:19 GMT; path=/; HttpOnly

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует