Выполнение GET-запроса на примере Яндекс.API

Выполнение POST-запроса на примере Yandex.API
Выполнение POST-запроса по протоколу HTTPS на платформе 8.2 на примере Yandex.API

Платформа 1С позволяет разработчикам выполнять HTTP-запрос методом GET. С помощью GET-запроса веб-серверу передаются параметры (тело у такого запроса отсутствует), в ответ сервер возвращает некую информацию. Параметры GET-запроса имеют следующий формат ИмяПараметра=ЗначениеПараметра и разделяются вопросительным знаком. Пример GET-запроса: http://geocode-maps.yandex.ru/1.x/?geocode=Ивановка.

Рассмотрим выполнение HTTP-запроса методом GET на сервис Яндекс.Геокодер. В запросе мы будем передавать через параметр geocode название географического объекта, в ответ нам будут приходить сведения об этом объекте (координаты, название, адрес . . .).

Для выполнения GET-запроса у платформы 1С имеется объект HTTPСоединение. С помощью его метода Получить выполняется HTTP-запрос методом GET. В этот метод передается объект HTTPЗапрос, который содержит параметры запроса и их значения. Результатом вызова метода является объект HTTPОтвет, содержащий некую информацию, которую сгенерировал сервер в ответ.

Функция выполнения GET-запроса на сервис Яндекса:
// Функция выполняет GET-запрос на сервис Яндекс.Геокодер.
//
// Параметры
//  ГеографическийОбъект  - строка - название географического объекта.
//
// Возвращаемое значение:
//   Строка   - ответ сервиса в формате xml.
//
Функция ВыполнитьGetЗапрос(Знач ГеографическийОбъект) Экспорт

ГеографическийОбъект = СтрЗаменить(ГеографическийОбъект, " ", "+");

HTTPЗапрос = Новый HTTPЗапрос("/1.x/?geocode=" + ГеографическийОбъект);
HTTPСоединение = Новый HTTPСоединение("geocode-maps.yandex.ru");
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);

Возврат HTTPОтвет.ПолучитьТелоКакСтроку();

КонецФункции // ВыполнитьGetЗапрос()


Перед выполнением запроса, необходимо у значений параметров заменить все пробелы на "+"!

Пример выполненного запроса:
Запрос на получение информации о красной площади
Обработку можно скачать по этой ссылке.

Комментарии

  1. СЕйчас если выполнять этот код, то код состояния ответа возвращается 301 и в заголовках ответа не вижу новой ссылки.

    ОтветитьУдалить
    Ответы
    1. По HTTPS оно работает
      ...
      SSL = Новый ЗащищенноеСоединениеOpenSSL();
      HTTPСоединение = Новый HTTPСоединение("geocode-maps.yandex.ru",,,,,,SSL);
      ...

      Удалить

Отправить комментарий