Форум
Вход
Вход
Регистрация
Знания
1С:Предприятие
Инф. технологии
О жизни
Книга знаний
Учебные курсы
Wiki
Поиск
Секции
IT-новости
Веб-мастеринг
Администрирование
Жизнь форума
Наука и технологии
Юмор
Другие секции...
Работа
Обсуждения
Вакансии
О нас
О форуме
Правила
Рейтинг
Карта сайта
Объявления
Контакты
Имя:
Пароль:
Войти
1C
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 запроса.
Так их значений не будет видно в адресе.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший
Форум
|
Правила
|
Описание
|
Объявления
|
Секции
|
Поиск
|
Книга знаний
|
Вики-миста