|
v7: Синхронные запросы к сайту | ☑ | ||
---|---|---|---|---|
0
brenli
30.10.20
✎
13:17
|
Возможно ли создать синхронные запросы к сайту? Т.е нужно выгрузить большой список товаров на сайт используя json.
Все количество товаров делится по 100 штук. Нужно выгружая ждать пока отработает каждый запрос до получения ответа. Что можно предпринять? |
|||
1
Вафель
30.10.20
✎
13:21
|
юзать . нет
|
|||
2
MyNick
30.10.20
✎
13:22
|
Не понял проблему автора.
Сайт асинхронно отдает чтоли ответ, не загрузив в себя порцию данных? |
|||
3
ДенисЧ
30.10.20
✎
13:22
|
А что, с асинхронными, значит, вопросов не возникает? )))
|
|||
4
Вафель
30.10.20
✎
13:24
|
как я понял автор хочет параллельно грузить
|
|||
5
arsik
гуру
30.10.20
✎
13:26
|
Если (4) то фоновыми. В каждое фоновое пихаешь свою часть.
|
|||
6
arsik
гуру
30.10.20
✎
13:26
|
Сорян не увидел что 77
|
|||
7
brenli
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с тело запроса проставляется корректно. |
|||
8
brenli
30.10.20
✎
13:36
|
Грешу что 1с не дожидается завершения и создает очередь. Пробовал ставить таймер для остановки, но безуспешно.
|
|||
9
brenli
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; КонецПопытки; КонецФункции |
|||
10
arsik
гуру
30.10.20
✎
13:47
|
curl уже предлагали?
|
|||
11
brenli
30.10.20
✎
13:48
|
(10) Нет пока)
|
|||
12
arsik
гуру
30.10.20
✎
13:51
|
А так пробовал?
WinHttp.open("POST",Сервер,0); |
|||
13
arsik
гуру
30.10.20
✎
14:20
|
Смотри фиддлером. Там видно будет, реально не отправляется, в чем я сомневаюсь, или на стороне flask коряво разбирается.
|
|||
14
arsik
гуру
30.10.20
✎
14:42
|
О. Еще 1 вариант вспомнил stunnel.
|
|||
15
brenli
30.10.20
✎
15:05
|
Спасибо буду пробовать
|
|||
16
ДедМорроз
31.10.20
✎
16:34
|
Что мешает обновить msxml и использовать ServerXMLHttpRequest напрямую ?
|
|||
17
ДедМорроз
31.10.20
✎
16:35
|
По крайней мере на windows xp ServerXMLHttp работает без проблем.
|
|||
18
trdm
31.10.20
✎
17:13
|
(16) откудова качнуть?
|
|||
19
Alex_
Alexsin_2020 17.11.20
✎
19:45
|
(0) могу библу свою скинуть для работы с веб сервисами
|
|||
20
Alex_
Alexsin_2020 17.11.20
✎
19:48
|
Могу в ней реализовать очередь из запросов в итоге сколько бы запросов не выпихнули она сама будет ждать пока первый пакет не отошлет
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |