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

Веб-сервис и 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

Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует