Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Синхронные запросы к сайту

v7: Синхронные запросы к сайту
Я
   brenli
 
30.10.20 - 13:17
Возможно ли создать синхронные запросы к сайту? Т.е нужно выгрузить большой список товаров на сайт используя json.
Все количество товаров делится по 100 штук. Нужно выгружая ждать пока отработает каждый запрос до получения ответа.
Что можно предпринять?
   Вафель
 
1 - 30.10.20 - 13:21
юзать . нет
   MyNick
 
2 - 30.10.20 - 13:22
Не понял проблему автора.
Сайт асинхронно отдает чтоли ответ, не загрузив в себя порцию данных?
   ДенисЧ
 
3 - 30.10.20 - 13:22
А что, с асинхронными, значит, вопросов не возникает? )))
   Вафель
 
4 - 30.10.20 - 13:24
как я понял автор хочет параллельно грузить
   arsik
 
5 - 30.10.20 - 13:26
Если (4) то фоновыми. В каждое фоновое пихаешь свою часть.
   arsik
 
6 - 30.10.20 - 13:26
Сорян не увидел что 77
   brenli
 
7 - 30.10.20 - 13:34
Вообще суть такая.

Делаю обработку для взаимодействия с Woocommerce из клюшек. По пути создания обработки выплыли неприятные моменты из за того что клюшки стоят на 2003 сервере
который не может нормально работать с https , соответственно не может пройти авторизация.
Вышел из проблемы так с помощью flask наваял прокси скрипт . Все работает корректно - скрипт получает данные из 1с и проталкивает до вэб сервера возвращая ответы...,НО
при попытке создания серии запросов, только последний запрос из серии отрабатывает корректно. В первых запросах по отношению к последнему нет тела из json. Они пустые.
Я уже всю голову сломал.

Вот трассировка работы скрипта с одним товаром в пакете запроса...
Список был сокращен. Я 10 товаров разбил на 10 запросов по 1 товару в запросе.

10.0.0.2 - - [29/Oct/2020 22:31:59] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 400 -
db.test.ru
ck_693982c64ef09d3870cf5f8ec2b353e5eef37056
cs_062c1995b091e17f70e4087b9499264fb892edbb
OLOLO
10.0.0.2 - - [29/Oct/2020 22:31:59] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 400 -
db.test.ru
ck_693982c64ef09d3870cf5f8ec2b353e5eef37056
cs_062c1995b091e17f70e4087b9499264fb892edbb
OLOLO
10.0.0.2 - - [29/Oct/2020 22:31:59] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 400 -
db.test.ru
ck_693982c64ef09d3870cf5f8ec2b353e5eef37056
cs_062c1995b091e17f70e4087b9499264fb892edbb
OLOLO
10.0.0.2 - - [29/Oct/2020 22:31:59] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 400 -
db.test.ru
ck_693982c64ef09d3870cf5f8ec2b353e5eef37056
cs_062c1995b091e17f70e4087b9499264fb892edbb
OLOLO
10.0.0.2 - - [29/Oct/2020 22:31:59] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 400 -
db.test.ru
ck_693982c64ef09d3870cf5f8ec2b353e5eef37056
cs_062c1995b091e17f70e4087b9499264fb892edbb
OLOLO

{'create': [{'type': 'simple', 'regular_price': '4322.00', 'status': 'publish', 'tax_status': 'none', 'virtual': False, 'catalog_visibility': 'visible', 'featured': False, 'manage_stock': True, 'sku': '', 'downloadable': False, 'name': 'Абажур подвесной Паутина А-33'}]}
https://db.test.ru/wp-json/wc/v3/products/batch/?consumer_key=ck_693982c64ef09d3870cf5f8ec2b353e5eef37056&consumer_secret=cs_062c1995b091e17f70e4087b9499264fb892edbb&;
with body {'create': [{'type': 'simple', 'regular_price': '4322.00', 'status': 'publish', 'tax_status': 'none', 'virtual': False, 'catalog_visibility': 'visible', 'featured': False, 'manage_stock': True, 'sku': '', 'downloadable': False, 'name': 'Абажур подвесной Паутина А-33'}]}
10.0.0.2 - - [29/Oct/2020 22:32:02] "POST /wp-json/wc/v3/products/batch/ HTTP/1.1" 200 -

В самой 1с тело запроса проставляется корректно.
   brenli
 
8 - 30.10.20 - 13:36
Грешу что 1с не дожидается завершения и создает очередь.  Пробовал ставить таймер для остановки, но безуспешно.
   brenli
 
9 - 30.10.20 - 13:47
Функция POST_Req(Сервер, JSON, СпЗаголовки, пСтатус) Экспорт
    
    WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");//WinHttpRequest

    
    WinHttp.open("POST",Сервер); 
    
    Для Н=1 По СпЗаголовки.РазмерСписка() Цикл
        Значение="";
        Тип = СпЗаголовки.ПолучитьЗначение(Н,Значение);
        WinHttp.SetRequestHeader(СокрЛП(Тип), СокрЛП(Значение));
        
        Сообщить(Тип + СимволТабуляции + Значение);
    КонецЦикла;
    
    Попытка
        WinHttp.send(JSON); 
        пСтатус = WinHttp.status;
        Если WinHttp.status = 200 Тогда   
            Сообщить(" HTTP " + WinHttp.Status + " " + WinHttp.StatusText);
            Возврат WinHttp.ResponseText;
        Иначе
            Сообщить("Ошибка отправки запроса","!");
            Сообщить("HTTP " + WinHttp.Status + " " + WinHttp.StatusText);
            Возврат WinHttp.ResponseText;
            //Возврат 0;

        КонецЕсли;
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат 0;
    КонецПопытки;
КонецФункции
   arsik
 
10 - 30.10.20 - 13:47
curl уже предлагали?
   brenli
 
11 - 30.10.20 - 13:48
(10) Нет пока)
   arsik
 
12 - 30.10.20 - 13:51
А так пробовал?
WinHttp.open("POST",Сервер,0);
   arsik
 
13 - 30.10.20 - 14:20
Смотри фиддлером. Там видно будет, реально не отправляется, в чем я сомневаюсь, или на стороне flask коряво разбирается.
   arsik
 
14 - 30.10.20 - 14:42
О. Еще 1 вариант вспомнил stunnel.
   brenli
 
15 - 30.10.20 - 15:05
Спасибо буду пробовать
   ДедМорроз
 
16 - 31.10.20 - 16:34
Что мешает обновить msxml и использовать ServerXMLHttpRequest напрямую ?
   ДедМорроз
 
17 - 31.10.20 - 16:35
По крайней мере на windows xp ServerXMLHttp работает без проблем.
   trdm
 
18 - 31.10.20 - 17:13
(16) откудова качнуть?
   Alex_Alexsin_2020
 
19 - 17.11.20 - 19:45
(0) могу библу свою скинуть для работы с веб сервисами
   Alex_Alexsin_2020
 
20 - 17.11.20 - 19:48
Могу в ней реализовать очередь из запросов в итоге сколько бы запросов не выпихнули она сама будет ждать пока первый пакет не отошлет

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