Новый httpзапрос 1с параметры

Работа с HTTP в 1С 8.2 и 8.3

В этой статье я попробую рассказать о том, какими средствами располагает технологическая платформа для работы с протоколом HTTP. В начале будет немного общей информации, а затем конкретные примеры. Отмечу, что в статье используется технологическая платформа версии 8.3.12.1595.

Общая информация

Для работы с протоколом HTTP в 1С существуют три основных объекта — HTTPСоединение, HTTPЗапрос и HTTPОтвет, кроме этого для создания HTTPS-соединения используется объект ЗащищенноеСоединениеOpenSSL, а для соединения через прокси-сервер объект ИнтернетПрокси. Существует еще несколько объектов, которые могут использоваться при работе с протоколом HTTP, но используются они достаточно редко и не так важны.

Назначение основных объектов следует из названия.

HTTPСоединение отвечает за соединение с сервером — в свойствах объекта, помимо обязательного адреса, можно указать порт, прокси, логин, пароль, таймаут, защищенное соединение и флаг аутентификации ОС, а методы повторяют основные методы HTTP.

HTTPЗапрос позволяет описать что именно мы хотим от сервера — в свойствах нужно обязательно указать адрес ресурса к которому мы обращаемся, кроме этого имеется возможность указать какие-либо заголовки, методы же, в свою очередь, позволяют различными способами установить и получить тело запроса.

HTTPОтвет является результатом выполнения запроса к серверу — из свойств мы можем узнать ответные заголовки и код состояния, а методы позволяют получить тело ответа различными способами.

ИнтернетПрокси позволяет указать настройки прокси-сервера — с помощью метода Установить() можно указать параметры для подключения к прокси-серверу, отмечу, что свойства «Пароль» и «Пользователь» являются устаревшими, использовать их не рекомендуется.

ЗащищенноеСоединениеOpenSSL создает защищенное соединение OpenSSL — имеется возможность указать сертификат клиента и/или сертификат удостоверяющего центра, в большинстве случаев (для доступа к обычным сайтам по протоколу HTTPS) указывать какие либо сертификаты не требуется.

Заканчиваем с теорией и переходим к практике.

Практические задачи при работе с HTTP

В качестве практической части рассмотрим задачи, которые чаще всего встречаются при работе с протоколом HTTP в 1С

Источник

Новый httpзапрос 1с параметры. Смотреть фото Новый httpзапрос 1с параметры. Смотреть картинку Новый httpзапрос 1с параметры. Картинка про Новый httpзапрос 1с параметры. Фото Новый httpзапрос 1с параметры

1С 8.3 HTTP

&НаКлиенте
Процедура ПолучениеСтраницыСайтаЧерезHttpЗапрос ()

&НаКлиенте
Процедура ОбработкаПеренаправленияВHttpЗапросе ()

// Сохранение страницы с результатами поиска в виде html файла и тут же покажем его пользователю.
СоздатьКаталог ( КаталогДокументов () + «\1cnik.by» );
ФайлHTML = КаталогДокументов () + «\1cnik.by\index.html» ;

// Вывод пользователю на экран
ЗапуститьПриложение ( ФайлHTML );
КонецЕсли;

&НаКлиенте
Процедура СохранениеКартинкиССайта ()

// Показываем картинку пользователю
ЗапуститьПриложение ( ФайлКартинки );

&НаКлиенте
Процедура УстановказЗаголовкаHTTPЗапроса ()

// Подключаемся к сайту.
СоединениеHTTP = Новый HTTPСоединение ( «1cnik.by» );

&НаКлиенте
Процедура УстановкаПроксиДляHTTPзапроса ()

Proxy = Новый ИнтернетПрокси ;

&НаКлиенте
Процедура ОтправкаЗащищенногоЗапросаHTTPS ()

// Получение текста страницы
ЗапросHTTP = Новый HTTPЗапрос ( «/» ); // Можно указать любую страницу например, «/services» или «/contacts»

&НаКлиенте
Процедура ОтправкаPOSTзапросаЧерезHTTP () // Отправка GET запроса к https://releases.1c.ru/total

// В результате второго Get-запроса возращена страница авторизации
// Получаем из формы авторизации значения параметров name=»lt», name=»execution» и name=»_eventId»,
// Чтобы сформировать код приглашения на сайт.
ltValue = «» ; executionValue = «» ; _eventIdValue = «» ;

// Для формирования кода приглашения нужен логин и пароль от сайта 1С:ИТС.
Логин1СИТС = «» ;
Пароль1СИТС = «» ;

Если Логин1СИТС = «» Или Пароль1СИТС = «» Тогда
Сообщить ( «Для продолжения укажите в коде логин и пароль от ИТС.» );
Возврат;
КонецЕсли;

// Отправка Post-запроса
Ресурс = «/login;» + ИдентификаторСессии2 +
«?service=https%3A%2F%2Fusers.v8.1c.ru%2Fdistribution%2Fpublic%2Fsecurity_check%3B» + ИдентификаторСессии1 ;

// Для завершении авторизации переходим на следующую страницу, используя первый идентификатор сессии
СтрURI = СтруктураURI ( СтраницаПеренаправление );

&НаКлиенте
Функция СтруктураURI (Знач СтрокаURI ) Экспорт

СтрокаURI = СокрЛП ( СтрокаURI );

&НаКлиенте
Функция ВытащитьЗначениеИзСтроки ( ТекСтрока )

Источник

HTTP запросы в 1С 8.3: примеры GET и POST запросов

В платформе 1С 8.3 и 8.2 реализована возможность использования HTTP запросов, а именно GET и POST запросов. Это очень удобный инструмент для реализации обмена данными с различными веб-ресурсами, взаимодействия с веб-сервисами и прочими службами или системами.

GET запросы в 1С 8.3

Самым распространенным HTTP запросом является GET запрос. Как правило, данный запрос используется для получения какого-либо ресурса или содержимого указанного ресурса. Например, файла.

Принцип работы GET запроса очень прост. После соединения с сервером происходит отправка заголовка запроса, и, если запрос одобрен, отправителю возвращается ответ, содержащий тело с содержимым запрашиваемого ресурса.

Отличительной особенностью GET запроса является отсутствие тела запроса, наличествуют только заголовки.

В качестве примера рассмотрим получение GET запросом логотипа нашего сайта https://programmist1s.ru и сохранение его на диске.

Для начала рассмотрим вопрос, как же нам сформировать сам текст запроса. На самом деле в отношении файла с картинкой это совсем не сложно. Воспользуемся инструментами браузера. Я буду использовать Оперу, в Вашем браузере процесс может несколько отличаться, но принцип один.

Итак, нажимаем правой кнопкой мышки на логотип и выбираем «Посмотреть код элемента»:

Новый httpзапрос 1с параметры. Смотреть фото Новый httpзапрос 1с параметры. Смотреть картинку Новый httpзапрос 1с параметры. Картинка про Новый httpзапрос 1с параметры. Фото Новый httpзапрос 1с параметры

Откроется окно с кодом, где нас интересует тэг img src= и далее адрес картинки:

Новый httpзапрос 1с параметры. Смотреть фото Новый httpзапрос 1с параметры. Смотреть картинку Новый httpзапрос 1с параметры. Картинка про Новый httpзапрос 1с параметры. Фото Новый httpзапрос 1с параметры

Вот этот адрес и нужно скопировать. В разных браузерах по-разному можно это сделать, в Опере это проще всего сделать, перейдя сначала в режим редактирования (правая кнопка мышки – Edit attribute).

Теперь разберем ее на две части:

Теперь можно переходить к написанию кода. Я приведу весь код сразу, целиком. А пояснения будут в комментариях. Готовую обработку можно скачать здесь.

&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)
// Создаем HTTPСоединение, указываем сервер
Соединение = Новый HTTPСоединение(СерверДляЗапроса);
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
// Запросим имя файла, который будет сохранен. По умолчанию расширение png
СтрФильтр = НСтр(«ru = ‘Файл’») + «(*.»+»png»+»)|*.»+ «png»;
ДиалогОткрытияФайла.Фильтр = СтрФильтр;
ДиалогОткрытияФайла.Заголовок = «Укажите имя файла»;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
Если ДиалогОткрытияФайла.Выбрать() Тогда
// Выполнить GET запрос:
Соединение.Получить(ТекстДляЗапроса, ДиалогОткрытияФайла.ПолноеИмяФайла);
Сообщить(«Удачно выполнен GET запрос!»);
Иначе
Сообщить(«Не выбран файл!»);
КонецЕсли;
КонецПроцедуры

Как видим, все достаточно просто. Фактически, мы создаем HTTP соединение, а затем отправляем запрос и сохраняем ответ в файл:

Новый httpзапрос 1с параметры. Смотреть фото Новый httpзапрос 1с параметры. Смотреть картинку Новый httpзапрос 1с параметры. Картинка про Новый httpзапрос 1с параметры. Фото Новый httpзапрос 1с параметры

POST запросы в 1С 8.3

POST запросы кроме заголовков могут содержать еще и тело. Тем самым они предоставляют гораздо большие возможности, чем GET запросы. Они широко применяются, например, для авторизации на ресурсе и последующих действий. Также с помощью POST запросов можно запускать сложные процессы, зависящие от входящих данных, и так далее. Кроме того, POST запросы бывают двух типов:

Практический пример я рассматривать не буду, так как область применения POST запросов очень обширна и, как правило, связана со сложными процессами, достойными отдельной разработки. Я дам лишь пример общей схемы работы с такими запросами. Если у Вас возникнут вопросы или затруднения, мы всегда рады ответить на вопросы или выполнить разработку под заказ.

Итак, отправка POST запроса средствами платформы 1С: Предприятие 8.3 осуществляется следующим образом:

&НаКлиенте
Процедура ВыполнитьЗапрос(Команда)
// Создаем новое HTTP соединение с указанием сервера
// Последний параметр отвечает за использование защищенного соединения
HTTP = Новый HTTPСоединение(ИмяСервера. Истина);
// Получим временный файл для передачи в теле POST запроса
ФайлТелаЗапроса = ПолучитьИмяВременногоФайла();
// Запишем в файл содержимое тела запроса (текст)
ТекстФайл = Новый ТекстовыйДокумент;
ТекстФайл.УстановитьТекст(ФайлТелаЗапроса);
ТекстФайл.Записать(ФайлТелаЗапроса, КодировкаТекста.ANSI);
// Получим размер данных для передачи в заголовок
ФайлНаОтправку = Новый Файл(ФайлТелаЗапроса);
РазмерФайлаНаОтправку = XMLСтрока(ФайлНаОтправку.Размер());
// Получим временный файл — тело ответа POST запроса
ФайлРезультат = ПолучитьИмяВременногоФайла();
// Заголовок создадим в виде соответствия
ЗаголовокЗапросаHTTP = Новый Соответствие();
// Передаем в заголовках размер и тип данных на отправку
ЗаголовокЗапросаHTTP.Вставить(«Content-Length», РазмерФайлаНаОтправку);
ЗаголовокЗапросаHTTP.Вставить(«Content-Type», «application/json; charset=utf-8»);
// Отсылаем POST запрос на обработку.
// СсылкаНаРесурс — ссылка на веб-сервер (страницу), к которой посылается POST запрос
HTTP.ОтправитьДляОбработки(ФайлТелаЗапроса, СсылкаНаРесурс, ФайлРезультат, ЗаголовокЗапросаHTTP);
// Получим ответ
ТекстовыйФайлОтвета = Новый ТекстовыйДокумент;
ТекстовыйФайлОтвета.Прочитать(ФайлРезультат, КодировкаТекста.UTF8);
СтрокаОтветаСервера = ТекстовыйФайлОтвета.ПолучитьТекст();
КонецПроцедуры

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *