Имя: Пароль:
1C
 
Как отправить запрос HTTP без ожидания ответа
,
0 SRM1C
 
18.05.18
17:25
Вечер добрый!
Собственно, как отправить запрос, а затем идти дальше, не ждать ответ?

Соединение = Новый HTTPСоединение(СтрокаЗапроса);
            ФайлTXT = ПолучитьИмяВременногоФайла("txt");
            Соединение.ОтправитьДляОбработки("", ФайлTXT);
1 Юрий Лазаренко
 
18.05.18
17:27
(0) На "той стороне" получай данные, проверяй на валидность и сразу возвращай ответ, что, мол, все нормально, инструкции получены и приняты к обработке. А потом данные обрабатывай в фоне.
2 cons74
 
18.05.18
17:28
(0) помести свой код в фоновое
3 Юрий Лазаренко
 
18.05.18
17:29
Ну или если нет возможности повлиять на "ту сторону", то запускай функцию, которая отправляет запрос, в фоне. То есть, функцию в фоне запустил и или дальше. Функция запрос отправила и ждет результата. Дождалась - сделала с результатом что надо. А ты в удобное время за этим результатом зайдешь.
4 SRM1C
 
18.05.18
17:29
(1) Суть такая, что запрос отправился, дальше мне не интересно, что там будет в ответе, сам запрос по результату зайдет в мой web-сервис, где обработается как надо, а здесь меня интересует только отправка запроса.
5 Юрий Лазаренко
 
18.05.18
18:23
(4) Тогда вариант (3): запускай запрос в фоновой процедуре, она все что надо отправит и сколь угодно долго сможет ждать ответа от сервера (ну или отвалится по таймауту, если не дождется), не влияя на работу алгоритма, который эту процедуру запустил.
6 Redkiy
 
18.05.18
19:28
(4) А как ты узнаешь, что запрос вообще дошел до адресата?
200 по любому нужно получить в ответ. Даже без обработки, как гарантия что "посылка получена".
7 Cyberhawk
 
18.05.18
20:14
(6) Можно на стороне БД отправителя запроса логировать исходящие запросы. На стороне БД получателя логировать входящие запросы. Далее сопоставлять на любой стороне (лазая в другую БД), что было отправлено и что было принято.
8 Сияющий в темноте
 
18.05.18
22:28
В любой системе это называется асинхронные запросы.
если под виндой,то можно прикрутить ServerXmlHttpRequest,он так умеет и вызывает событие.
Насколько я помню,1с умеет обрабатывать события от COM-серверов.