![]() |
|
Как заставить 1С отправить HTTPЗапрос в режиме POST | ☑ | ||
---|---|---|---|---|
0
Kongo2019
19.02.19
✎
15:00
|
Доброго.
Как заставить 1С отправить HTTPЗапрос в режиме POST. По справке сказано что режим GET в 1С от POST отличается только наличием тела запроса. УстановитьТелоИзСтроки Я уже полдня гоняю, но не могу добиться, все в режиме GET уходит. Соединение = Новый HTTPСоединение("localhost", 80); Запрос = Новый HTTPЗапрос("/server/hs/link/partner"); Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); Запрос.УстановитьТелоИзСтроки("1"); Результат = Соединение.Получить(Запрос); Сообщить("Нам вернули код: " + Результат.КодСостояния); А в ответ только 405 ошибку получаю. |
|||
1
icipher
19.02.19
✎
15:04
|
Надо не Соединение.получить(), а соединение.отправить() - как то так
|
|||
2
ДенисЧ
19.02.19
✎
15:07
|
HTTPСоединение.ОтправитьДляОбработки (HTTPConnection.Post)
HTTPСоединение (HTTPConnection) ОтправитьДляОбработки (Post) Синтаксис: ОтправитьДляОбработки(<HTTPЗапрос>, <ИмяВыходногоФайла>) Параметры: <HTTPЗапрос> (обязательный) Тип: HTTPЗапрос. HTTP-запрос. <ИмяВыходногоФайла> (необязательный) Тип: Строка. Имя выходного файла, в который записываются полученные с сервера данные. Если не указан или содержит пустую строку, то тело ответа может быть получено из объекта HTTPОтвет. Возвращаемое значение: Тип: HTTPОтвет. Описание: Отправляет данные на указанный адрес для обработки при помощи HTTP-запроса POST. Доступность: Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Пример: // инициализируем объект для записи XML ИмяФайлаЗапроса = ПолучитьИмяВременногоФайла(); ОбъектЗапись = Новый ЗаписьXML; ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("windows-1251", , Ложь); ОбъектЗапись.ОткрытьФайл(ИмяФайлаЗапроса, ПараметрыЗаписиXML); ОбъектЗапись.ЗаписатьОбъявлениеXML(); // выводим корневой элемент Request ОбъектЗапись.ЗаписатьНачалоЭлемента("Request"); // выводим элемент ClientInfo ОбъектЗапись.ЗаписатьНачалоЭлемента("ClientInfo"); ОбъектЗапись.ЗаписатьАтрибут("email", АдресОтправителя); ОбъектЗапись.ЗаписатьКонецЭлемента(); Если ИмяФайлаСертификата <> Неопределено Тогда // кодируем в Base64 сертификат ДвДанные.Прочитать(ИмяФайлаСертификата); ФайлСертификатаBase64 = ДвДанные.ПолучитьСтрокуBase64(); // выводим элемент Certificate ОбъектЗапись.ЗаписатьНачалоЭлемента("Certificate"); ОбъектЗапись.ЗаписатьТекст(ФайлСертификатаBase64); ОбъектЗапись.ЗаписатьКонецЭлемента(); КонецЕсли; Если ИмяФайлаЗашифрованногоКонтейнера <> Неопределено Тогда // кодируем в Base64 зашифрованный контейнер ДвДанные.Прочитать(ИмяФайлаЗашифрованногоКонтейнера); ФайлЗашифрованногоКонтейнераBase64 = ДвДанные.ПолучитьСтрокуBase64(); // выводим элемент Data ОбъектЗапись.ЗаписатьНачалоЭлемента("Data"); ОбъектЗапись.ЗаписатьТекст(ФайлЗашифрованногоКонтейнераBase64); ОбъектЗапись.ЗаписатьКонецЭлемента(); КонецЕсли; // записываем конец для корневого элемента ОбъектЗапись.ЗаписатьКонецЭлемента(); ОбъектЗапись.Закрыть(); АдресСервераОнлайнПроверки = "onlinefc.taxcom.ru"; РесурсНаСервере = "/online_fc/online_fc.dll" + ?(ПолучитьСертификат, "?IncludeCertificate", ""); // устанавливаем соединение с сервером Попытка Соединение = Новый HTTPСоединение(АдресСервераОнлайнПроверки, , , , Прокси); Исключение Сообщить("Не удалось установить соединение с сервером онлайн-проверки:" + Символы.ПС + ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); Возврат; КонецПопытки; // посылаем запрос Попытка HTTPЗапрос = Новый HTTPЗапрос(РесурсНаСервере); HTTPЗапрос.УстановитьИмяФайлаТела(ИмяФайлаЗапроса); Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос); Соединение = Неопределено; Если Результат.КодСостояния > 299 Тогда Сообщить("Код состояния " + Результат.КодСостояния + ". Проверка не выполнена"); КонецЕсли; Исключение Сообщить(ИнформацияОбОшибке().Описание, СтатусСообщения.Важное); КонецПопытки; -------------------------------------------------------------------------------- Методическая информация |
|||
3
Kongo2019
19.02.19
✎
15:11
|
(1)Вот же блин. Спасибо.
(2)Спасибо, нашел уже. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |