Перенос данных при помощи http сервиса

1. tamidi 8 26.08.22 12:00 Сейчас в теме
Подскажите, пожалуйста. Делаю обмен данными через http сервис, необходимо записать данные из базы источника в базу приемник и получить обратно значение некой переменной. Я так поняла, что через http придется делать POST запрос для записи и далее GET для получения необходимых данных? Или есть еще какая-то возможность?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 26.08.22 12:02 Сейчас в теме
(1) для передачи нужно POST запрос, но он же позволяет и вернуть данные. Т.е. если необходимо и передать и получить, то достаточно одного POST запроса.
3. nomad_irk 81 26.08.22 12:02 Сейчас в теме
(1)в общем случае, POST вам может вернуть нужные вам данные, в отдельном GET необходимости нет.
4. tamidi 8 02.09.22 11:39 Сейчас в теме
Не пойму как вернуть параметр.
В обработчике метода POST следующий текст:

Ответ = Новый HTTPСервисОтвет(200);
	СтрокаОПЗСJSON = Запрос.ПолучитьТелоКакСтроку();
	КД_Обмен.ЗагрузитьОПЗСJSON(СтрокаОПЗСJSON);
	
	Возврат Ответ;


В процедуре ЗагрузитьОПЗСJSON создается документ и надо вернуть его номер.
Как записать его в ответ? При попытке изменить процедуру ЗагрузитьОПЗСJSON на функцию - документ не создается.
5. aka Любитель XML 02.09.22 11:55 Сейчас в теме
(4) покажи как пытаешься переделать процедуру на функцию (код покажи процедуры и функции)
6. tamidi 8 02.09.22 12:12 Сейчас в теме
(5) ?
Вместо процедуры делаю функцию и в ней Возврат НовыйДокумент.Ссылка.Номер
7. nomad_irk 81 02.09.22 12:17 Сейчас в теме
(4)можно не делать именно функцию, можно использовать параметры процедуры:

Номер = "";
КД_Обмен.ЗагрузитьОПЗСJSON(СтрокаОПЗСJSON, Номер);

и внутри ЗагрузитьОПЗСJSON сделать:

Номер = НовыйДокумент.Номер;
9. tamidi 8 02.09.22 12:48 Сейчас в теме
Спасибо, сделала.
	Ответ = Новый HTTPСервисОтвет(200);
	СтрокаОПЗСJSON = Запрос.ПолучитьТелоКакСтроку();
	Номер = "";
	КД_Обмен.ЗагрузитьОПЗСJSON(СтрокаОПЗСJSON, Номер);
	
	Ответ.УстановитьТелоИзСтроки(Номер);
	
	Возврат Ответ;
Показать


Добавила в Ответ через УстановитьТелоИзСтроки, а в источнике исправила
HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);

на
		Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
		Ответ = Результат.ПолучитьТелоКакСтроку();

А как быть, если понадобится набор параметров?
10. nomad_irk 81 02.09.22 13:40 Сейчас в теме
(9)Оперировать структурой, где ключ - имя параметра
11. tamidi 8 02.09.22 14:16 Сейчас в теме
(10)Не знаю как передать эту структуру. Как в ответе загрузить/выгрузить ее.
12. spacecraft 02.09.22 14:28 Сейчас в теме
(11) строкой. Наиболее распространенный способ в формате json. В 1С все для этого есть.
13. tamidi 8 02.09.22 15:04 Сейчас в теме
(12)т.е. передача ответа может быть аналогична передаче данных для запроса?
Не понятно тогда зачем столько методов.
Спасибо, буду разбираться
14. spacecraft 02.09.22 16:00 Сейчас в теме
(13)
т.е. передача ответа может быть аналогична передаче данных для запроса?

Если речь про форматы передаваемых данных, то да. Но может и отличаться. Это уже от разработчика сервиса зависит.
8. minarenko 02.09.22 12:43 Сейчас в теме
(4)
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(НомерДокумента);
Ответ.Заголовки.Вставить("Content-Type","text/html; charset=utf-8");

Возврат Ответ;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот