|
Отправка в HTTPСоединение() несколько HTTPЗапрос() одновременно | ☑ | ||
---|---|---|---|---|
0
Termopsis
05.02.16
✎
09:28
|
Есть ли возможность за один раз отправить несколько HTTPЗапрос()?
Сейчас логинюсь на сервере и поочередно отправляю запрос спрашивая статус каждого из 50 абонентов....получается весьма продолжительно(если замер делать то самое долгое это получение ответа). Можно ли как то сформировать пакет из 50 запросов и отправить его для обработки на сервер? В дальнейшем его или в файл или в сразу перебирать....неважно. Спасибо. |
|||
1
ДенисЧ
05.02.16
✎
09:36
|
Если тамошний сервер такого не умеет, то нельзя
|
|||
2
Termopsis
05.02.16
✎
09:37
|
А если бы умел то как бы выглядела команда?
|
|||
3
Termopsis
05.02.16
✎
09:38
|
Я имею ввиду как бы пришлось создавать "структуру" которая содержала в себе 50 запросов?
|
|||
4
Termopsis
05.02.16
✎
09:48
|
//Сейчас так
Соединение = Новый HTTPСоединение(Адрес); //Залогинились Запрос= Новый HTTPЗапрос(); Запрос.АдресРесурса = ТекстКомандыlogin; Ответ = Соединение.Получить(Запрос); //Получаем Cookie для отправки запроса Если Ответ.КодСостояния=200 Тогда Cookie = Ответ.Заголовки.Получить("Set-Cookie"); КонецЕсли; Для каждого Строка Из Мои50Абоненотов Цикл //Команда на сервер Запрос= Новый HTTPЗапрос(); Запрос.АдресРесурса=ТекстСМоейКомандой; Заголовки=Новый Соответствие; Заголовки.Вставить("Cookie",Cookie); Заголовки.Вставить("Accept","*/*"); Запрос.Заголовки=Заголовки; Ответ=Соединение.Получить(Запрос); ПолучаемыеДанные = Ответ.ПолучитьТелоКакСтроку(); Конеццикла; //Вот и интересно знать можно ли этого цикла избежать? //Вот эта срока "Ответ=Соединение.Получить(Запрос);", на //каждый из запросов выполняется по ~0.4 сек, а при 50 //это долго. //И за один раз "Соединение.Получить(Запрос)" получить //все данные. |
|||
5
Termopsis
05.02.16
✎
10:09
|
(1) Спасибо.
Разжевали твой ответ на другом ресурсе..... "Твой запрос на сервер, это по факту обращение к некой функции(скприту) Если скрипт с той стороны умеет обрабатывать в качестве параметра массив или список то с стороны 1с можешь сделать все что хочешь работать не будет". Оставлю, вдруг кому-нибудь понадобится. |
|||
6
Tateossian
05.02.16
✎
10:12
|
(0) Фоновые задания? (5) " 1с можешь сделать все что хочешь работать не будет" - а где написано - почему? Есть ссылка на тот форум?
|
|||
7
Termopsis
05.02.16
✎
10:13
|
))) Это "работать не будет" не от его коммента)))
|
|||
8
Termopsis
05.02.16
✎
10:13
|
Ищу как удалить/отредактировать сообщение форума....
|
|||
9
Termopsis
05.02.16
✎
10:15
|
Фоновым заданием я уже и так делаю....Я дроблю на куски и создаю пакет фоновых.....Обработка на порядок быстрее с 10 сек до 2....но как то загружать систему неправильно...лучшеж оптимизировать код...
|
|||
10
Serginio1
05.02.16
✎
10:16
|
||||
11
Termopsis
05.02.16
✎
10:20
|
(6) По Skype общались.
|
|||
12
mistеr
05.02.16
✎
10:28
|
(0) Это называется HTTP/2 (бывший SPDY), и 1С его не умеет. И вряд ли в ближайшее время научится. Не путай его с пакетными запросами, о которых тебе говорили на другом ресурсе. Пакетный запрос API сайта может реализовать при любой версии HTTP протокола.
|
|||
13
Serginio1
05.02.16
✎
10:32
|
10 + Правда есть ограничение на количество одновременных соединений, которыми можно управлять через ServicePointManager.DefaultConnectionLimit
https://msdn.microsoft.com/Ru-ru/library/7af54za5(v=vs.110).aspx |
|||
14
Serginio1
05.02.16
✎
11:03
|
13+ То есть через одно соединение ты можешь отсылать несколько запросов управляя ServicePointManager.DefaultConnectionLimit или ConnectionLimit для конкретного uri
Но можешь создавать на каждый запрос свое соединение. |
|||
15
Лефмихалыч
05.02.16
✎
11:06
|
(0) запросы, которые ты можешь отправлять, определяются API, который предоставляет сервер. Если сервер предоставляет API для пакетных запросов, ты можешь их отправлять. Если не предоставляет, то ты можешь только то, что он предоставляет.
|
|||
16
Лефмихалыч
05.02.16
✎
11:07
|
(14) далеко не факт, что это отработает быстрее и что это вообще будет работать, т.к. сервер может воспринять это как ddos-атаку и будет прав
|
|||
17
Serginio1
05.02.16
✎
11:33
|
(16) Пусть попробует. Попытка не пытка.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |