Книга: Технологии интеграции "1С:Предприятия 8.3""
Назад: HTTP-сервисы в расширениях
Дальше: Обращение к HTTP-сервисам

HTTP-запросы

В этом разделе рассказывается о том, как из системы «1С:Предприятие» можно обратиться к любому произвольному HTTP-сервису, опубликованному в Интернете, а также как обратиться к REST-интерфейсу любой внешней системы, доступному по протоколу OData.

Для простоты мы покажем примеры обращения к HTTP-сервисам и REST-интерфейсу (OData) прикладного решения «1С:Предприятия», реализованные нами в той же демонстрационной конфигурации, что и сами сервисы.

Ниже мы рассмотрим примеры получения, удаления и добавления данных прикладного решения «1С:Предприятия» с помощью HTTP-сервисов, разработанных нами в предыдущем разделе «». А затем изменение данных прикладного решения через REST-интерфейс (OData), который будет рассматриваться в следующем разделе «».

подробнее

Подробнее познакомиться с реализацией и использованием HTTP-запросов можно в демонстрационной конфигурации «Примеры работы», которая прилагается к книге.

Для обращения к HTTP-сервисам и REST-интерфейсу (OData) используются такие объекты встроенного языка, как HTTPСоединение, HTTPЗапрос и HTTPОтвет.

Для того чтобы изменить (добавить, удалить, прочитать и т. д.) данные информационной базы через REST-интерфейс, нужно создать HTTP-соединение с сервером (например, "localhost"), на котором опубликованы HTTP-сервисы (как созданные разработчиком, так и составляющие автоматический REST-интерфейс) для прикладного решения. Затем создать HTTP-запрос на основе адреса ресурса данных, которые требуется прочитать или изменить с помощью запроса. После этого нужно записать изменяемые данные в строку JSON/XML (или в файл, откуда будет считано тело запроса при отправке) и установить тело HTTP-запроса из этой строки (или установить имя файла тела запроса). И затем с помощью HTTP-соединения отправить запрос к серверу с соответствующим методом (POST, PUT/PATCH, DELETE и др.).

Чтобы выполнить HTTP-запрос нужного вида, у объекта HTTPСоединение существуют методы:

Ниже для ознакомления приведен пример POST-запроса в формате atom/XML, с помощью которого создается новый элемент справочника Товары (листинг 1.74).

Листинг 1.74. POST-запрос в формате atom

POST http://host/base/odata/standard.odata/Catalog_Товары HTTP/1.1

User Agent: Fiddler

Host: host

Content Length: 981

<entry>

<category term="StandardODATA.Catalog_Товары" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>

<title type="text"/>

<updated>2014 02 14T12:05:55</updated>

<author/>

<summary/>

<content type="application/xml">

<m:properties xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">

<d:DeletionMark>false</d:DeletionMark>

<d:Parent_Key>bbb079ae 8c51 11db a9b0 00055d49b45e</d:Parent_Key>

<d:IsFolder>false</d:IsFolder>

<d:Code>000000800</d:Code>

<d:Description>Шлепанцы</d:Description>

<d:Артикул>SL56X</d:Артикул>

<d:Поставщик_Key>086715b0 f348 11db a9c5 00055d49b45e</d:Поставщик_Key>

<d:Вид>Товар</d:Вид>

<d:Штрихкод/>

<d:Описание><html>Шлепанцы пляжные</html></d:Описание>

</m:properties>

</content>

</entry>

Тот же запрос в формате json выглядит гораздо компактнее (листинг 1.75).

Листинг 1.75. POST-запрос в формате json

POST http://host/base/odata/standard.odata/Catalog_Товары HTTP/1.1

Accept: application/json

Accept Charset: UTF 8

User Agent: Fiddler

Content Type: application/json

Content Length: 2426

{

"DeletionMark":false,

"Parent_Key":"bbb079ae 8c51 11db a9b0 00055d49b45e",

"IsFolder":false

"Code":"000000800",

"Description":"Шлепанцы",

"Артикул":"SL56X",

"Поставщик_Key":"086715b0 f348 11db a9c5 00055d49b45e",

"Вид":"Товар",

"Штрихкод":null,

"Описание:"Шлепанцы пляжные"

}

Назад: HTTP-сервисы в расширениях
Дальше: Обращение к HTTP-сервисам