Имя: Пароль:
1C
 
Как передать длинный параметр в 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.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший