|
Потоковое чтение ответа Get-запроса возможно ли в 1С? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
27.01.23
✎
21:29
|
Очень большой ответ (JSON), можно ли разбить или читать потоково, если на сайте нет пагинации?
|
|||
1
vde69
27.01.23
✎
21:39
|
что значит читать потоково?
|
|||
2
Garykom
гуру
27.01.23
✎
21:39
|
НТТРСоединение.Получить(Адрес, ИмяВходящегоФайла);
И читай по кусочкам файл |
|||
3
Garykom
гуру
27.01.23
✎
21:41
|
HTTPСоединение (HTTPConnection)
Получить (Get) Синтаксис: Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>) Параметры: <HTTPЗапрос> (обязательный) Тип: HTTPЗапрос. HTTP-запрос. <ИмяВыходногоФайла> (необязательный) Тип: Строка. Имя файла, в который помещаются данные полученного ресурса. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет. Возвращаемое значение: Тип: HTTPОтвет. Описание: Получает данные с HTTP-сервера, используя GET-запрос. Доступность: Сервер, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер. Использование в версии: Доступен, начиная с версии 8.0. Описание изменено в версии 8.3.21. |
|||
4
НафНаф
27.01.23
✎
21:43
|
и поставь уже 64-битный клиент
|
|||
5
vde69
27.01.23
✎
21:46
|
(0) любой сервис если он выдает json на входе имеет данные (параметры или post или еще какие) по которым можно сделать файл не большим,
вероятно ты просто не в курсе чего от тебя ждет сервер и посылаешь ему запрос без этих параметров. то есть вместо пагинатора тебе нужно использовать параметры запроса |
|||
6
vde69
27.01.23
✎
21:47
|
(5) +
опять что-то ломаешь :) |
|||
7
magicSan
28.01.23
✎
04:32
|
человек 20 лет в 1с я его помню 10 лет назад - ему лоботомию сделали или аккаунт продал? От темы к теме тупущие вопросы
|
|||
8
NorthWind
28.01.23
✎
07:26
|
ну это смотря кто апи проектировал :) мы ж этого не знаем...
|
|||
9
novichok79
28.01.23
✎
09:26
|
1Сина не умеет работать по TCP-IP из коробки, а для того что ты описал необходимо читать данные из сокета в буфер определенного размера. Кроме этого, JSON по частям - очень плохая затея, тебе придется где-то склеивать данные, если в буфер попало значение строкового поля неполностью. А раз склеивать придётся, все равно придется загружать это дело в память. Обычно в таких случаях в API предусмотрена пагинация. Хотя если API писал такой же гений, возможно её и нет.
|
|||
10
Гений 1С
гуру
28.01.23
✎
12:36
|
(4) а если COM понадобится - обратно 32? ггг... Забавный решала вопросов.
(2) Интересно, спасибо, попробую. |
|||
11
FirstLine Support
28.01.23
✎
12:45
|
(7) он ИП-шник, имейте уважение
|
|||
12
Гений 1С
гуру
28.01.23
✎
12:53
|
(2) Спасибо, помогло. Правда строку длинной 205 миллионов символов читала 3 минуты.
Но зато можно теперь не напрягать разработчиков API с пагинацией. Это хорошо.
|
|||
13
Asmody
28.01.23
✎
15:51
|
(12) "строку длинной 205 миллионов символов" - за такое API надо гнать из профессии сцаными тряпками
|
|||
14
zva
28.01.23
✎
16:44
|
Чтение = Новый ЧтениеJSON;
Чтение.ОткрытьПоток(Ответ.ПолучитьТелоКакПоток()); ДанныеОтвета = ПрочитатьJSON(Чтение, Истина); |
|||
15
Garykom
гуру
28.01.23
✎
18:25
|
(12) >строку длинной 205 миллионов символов читала 3 минуты
радуйся что всего 3 минуты для json был бы xml и трем часам радовался |
|||
16
Гений 1С
гуру
28.01.23
✎
19:53
|
(14) спасибо, попробую.
|
|||
17
Сергиус
29.01.23
✎
01:51
|
(7)Подобные вопросы у него всегда были - так что в этом стабильность)
|
|||
18
Сергиус
29.01.23
✎
01:53
|
(10)А что, COM в 64-х не работает что ли?
|
|||
19
НафНаф
29.01.23
✎
07:54
|
(12) так ты просто безграмотный оказался? Тю...
|
|||
20
Garykom
гуру
29.01.23
✎
08:51
|
>Если Ответ.КодСостояния = 200 Тогда
прикольная грабля что почти всегда только 200 код ответа принимают хотя https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP#2xx все 2ХХ ответы успешные |
|||
21
Garykom
гуру
29.01.23
✎
08:51
|
(20)+ это к https://ru.wikipedia.org/wiki/HTTP#Частичные_GET
|
|||
22
Гений 1С
гуру
29.01.23
✎
12:45
|
(18) не всё оборудование имеет дрова под 64, например
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |