|
HTTP сервис. Как передать параметры в post запросе | ☑ | ||
---|---|---|---|---|
0
ИС-2
13.10.23
✎
13:28
|
Подскажите как задать шаблон в базе приемник для post запроса, чтобы он принял 2 параметра
Написал такой шаблон /LoadMessageFromKIS/{MessageNo}/{ReceivedNo} вызываю HTTP сервис такой строкой ЗапросHTTP = Новый HTTPЗапрос("zup3_test/hs/ExchangeKIS/LoadMessageFromKIS/?MessageNo="+Узел_ЗУП3.НомерОтправленного + "/ReceivedNo="+Узел_ЗУП3.НомерПринятого, ЗаголовокЗапросаHTTP); zup3_test/hs/ExchangeKIS/LoadMessageFromKIS/?MessageNo=6&ReceivedNo=0 Ответ приходит 404. Если в базе приемник убрать параметры и оставить только /LoadMessageFromKIS/ |
|||
1
novichok79
13.10.23
✎
13:36
|
пздц...
давно не открывал конфигуратор, но кажется было так: ЗапросHTTP.УстановитьТело(ТекстЗапросаВJSON)
ну и затем Соединение.Получить(ЗапросHTTP)
|
|||
2
lubitelxml
13.10.23
✎
13:41
|
запросPOST = Новый HTTPЗапрос(параметрыhs);
запросPOST.УстановитьТелоИзСтроки(json,,ИспользованиеByteOrderMark.НеИспользовать); запросPOST.Заголовки.Вставить("Content-Type" ,application/json"); ФайлОтвета = КаталогВременныхФайлов()+ "answer.txt"; HTTPСоединение.ОтправитьДляОбработки(запросPOST, ФайлОтвета); |
|||
3
lubitelxml
13.10.23
✎
13:43
|
+(2) переменная json - ранее сформированный джон с параметрами.
|
|||
4
Donkey_hot
13.10.23
✎
14:19
|
(0) Если вы написали такой шаблон, то очевидно и обращаться надо по такому шаблону...
/LoadMessageFromKIS/123/456 Вы же используете необязательные параметры после знака вопроса, они немного для другого предназначены. Посмотрите руководство разработчика. |
|||
5
lubitelxml
13.10.23
✎
14:20
|
+(3) (4) - там со слешами нельзя ошибаться
ИмяHS = "ххх.хх"; параметрыhs = "/хх/хххх"; HTTPСоединение = Новый HTTPСоединение(ИмяHS); |
|||
6
BaZZiL
13.10.23
✎
20:08
|
/{MessageNo}/{ReceivedNo} это параметры URL
Параметры запроса это ?MessageNo=6&ReceivedNo=0 Удалить из шаблона /{MessageNo}/{ReceivedNo} и все заработает. А так оно не находит требуемый адрес, оканчивающийся на /{MessageNo}/{ReceivedNo} поэтому ошибка 404 Значения получить в тексте обработчика метода POST через МесседжНом = Запрос.ПараметрыЗапроса.Получить("MessageNo"); РесиведНом = Запрос.ПараметрыЗапроса.Получить("ReceivedNo"); |
|||
7
BaZZiL
13.10.23
✎
20:10
|
Преимущество использования параметров запроса по сравнению с параметрами URL такое что можно после добавить/удалить/поменять еще параметры и их обработку, а адрес метода не изменится.
|
|||
8
BaZZiL
13.10.23
✎
20:15
|
А еще в методе POST значения MessageNo и ReceivedNo лучше
упаковать в JSON и положить в тело запроса. А пользоваться ими для GET запроса. Так их значений не будет видно в адресе. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |