0
bmitkin
10.06.20
✎
14:10
|
Всем доброго дня!
Мне нужно получить и обработать данные с веб-сервиса, который отдаёт их как непрерывный поток: text/event-stream
Т.е. соединение устанавливается, передаются некоторые данные и сервером оно не разрывается. Данные передаются не постоянно, а при возникновении некоторых событий.
Более подробно описано тут:
Пытаюсь получить средствами 1С:
HTTPСоединение = Новый HTTPСоединение(Сервер,,,,,50,Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос(АдресСервиса);
ОтветСервера = HTTPСоединение.Получить(HTTPЗапрос); // вот тут зависает, а потом сбрасывает по таймауту
Поток = ОтветСервера.ПолучитьТелоКакПоток();
ЧтениеДанных = Новый ЧтениеДанных(Поток);
СтрокаДанных = ЧтениеДанных.ПрочитатьСтроку();
Может я что-то не так делаю?
Пока сделал через Wscript.Shell.
Вот такая конструкция работает:
СтрокаЗапуска = "curl -k -N " + """; + Сервер + АдресСервиса + """";
WshShell = Новый COMОбъект("Wscript.Shell");
WshExec = WshShell.Exec(СтрокаЗапуска);
OutStream = WshExec.StdOut;
СтрокаДанных = OutStream.ReadLine();
// После получения первой строки завершаем процесс.
WshExec.Terminate();// Процедура завершения иногда долгая ~2 сек
Если НРЕГ(Лев(СтрокаДанных, 5)) = "data:" Тогда
СтрокаДанных = Сред(СтрокаДанных, 6);
КонецЕсли;
Может кто-то сталкивался с подобным?
|
|