Как передать длинный параметр в HTTP сервис
☑
0
ИС-2
22.06.23
✎
10:59
Есть код который обращается к GET запросу в WMS
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "application/json");
ЗапросHTTP = Новый HTTPЗапрос( АдресРесурса, Заголовки);
ОтветHTTP = HTTPСоединение.ВызватьHTTPМетод(HTTPМетод, ЗапросHTTP);
где АдресРесурса путь с указанием параметра. Где в конце указываются ГУИДы.
АдресРесурса
wms_TestForExchangeUPP/hs/GetDateFromWMS/GetStockWarehouse/fe608748-0f60-11ee-9d22-d4f5ef78c963,fe6c0d8e-452d-11ed-96ff-44a8421c39d4
Веб-сервис вылетает с ошибкой 400, если передать длинную строку параметров (пр. 36000 символов).
Какие есть способы передачи большого кол-ва параметров ?
1
mikecool
22.06.23
✎
11:05
заголовки, тело
2
mikecool
22.06.23
✎
11:05
правда это уже не Гет будет...
3
big
22.06.23
✎
11:19
А разбить на несколько запросов? Не?
4
Garykom
22.06.23
✎
11:40
(2) стандарт (последний) даже у GET подразумевает тело
(0) заголовки никаких проблем
5
Garykom
22.06.23
✎
11:43
(2) правильней сказать уже не RESTful будет
имхо переходи на POST да и все
т.е. http только как транспорт (всегда POST делать) а все внутри в телах в JSON
6
lodger
22.06.23
✎
11:49
(3) +1.
если уж хотите REST то жуйте неспеша, порциями.
7
Garykom
22.06.23
✎
11:51
(6) еще скажи многопоточно сразу кучу отдельными соединениями запрашивать а потом собирать ))
8
lodger
22.06.23
✎
12:45
(7) а чоб и нет? надо только 8.3.25 дождаться, там пауза есть!
9
Donkey_hot
22.06.23
✎
13:43
(0) Если есть возможность подшлифовать сервис, то однозначно POST.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший