Содержание:
1. Использование «GET» запросов HTTP
2. Отработка перенаправления http запроса
Для платформы 1С 8.3 осуществлена достижимость работы HTTP запросов, конкретнее GET и POST запросов. Это весьма удобный аппарат для совершения обмена данными со всевозможными веб-ресурсами, настройки взаимосвязи с ними, а также другими службами и системами.
1. Использование «GET» запросов HTTP
Метод «GET» является наиболее популярным HTTP запросом. Чаще всего, указанный запрос GET HTTP используют для получения какого-то ресурса или его содержимого. В пример можно привести файл.
Принцип работы «GET» запроса является довольно простым. После соединения с сервером случается отправление заголовка запроса, и, если запрос одобрен, то отправителю вернётся в ответ «тело» с предметом запрашиваемого ресурса.
Для того работы с запросом GET в 1С имеется три основных объекта: HTTPСоединение, HTTPЗапрос и HTTPОтвет. Помимо этого, для формирования HTTPS-соединения применяется объект ЗащищенноеСоединениеOpenSSL, а для связи через прокси-сервер – объект ИнтернетПрокси.
Рассмотрим каждый из объектов для более глубокого понимания сути запросов GET HTTP:
1. HTTPСоединение – ответственен за связь с сервером. В свойствах объекта, кроме обязательного адреса, есть возможность указать порт, прокси, логин, пароль, защищенное соединение и так далее.
2. HTTPЗапрос – даёт возможность сделать описание того, что конкретно мы хотим получить от сервера. В самих свойствах потребуется отметить адрес ресурса, к которому мы обращаемся.
3. HTTPОтвет – это результат исполнения запроса к серверу. По свойствам появляется возможность узнать ответные заголовки и код состояния, как раз здесь методы помогают получить «тело» ответа разным образом.
4. ИнтернетПрокси – предоставляет предписать настройки для прокси-сервера. При помощи метода установить () получаем возможность указания параметров для подключения к прокси-серверу.
5. ЗащищенноеСоединениеOpenSSL – даёт возможность сделать соединение защищённым (OpenSSL). Можно указать сертификат клиента и/или сертификат главного центра.
Метод запроса «GET» используется для запроса составляющего указанного ресурса. При помощи него имеется возможность также запускать различные процессы. В таком случае в «тело» обратного ответного сообщения необходимо добавить информацию о ходе исполнения действия.
Клиент сможет отображать и передавать параметры исполнения запроса в URI целевого ресурса после символа «?»:
GET /path/resource?param1=value1¶m2=value2 HTTP/1.1
Следуя стандартам HTTP, запросы типа «GET» считаются идемпотентными, то есть клиенты могут делать один и тот же вызов много раз, имея при этом одинаковый результат.
Помимо обычного метода запроса «GET», различают ещё два подтипа:
· Условный «GET» – содержит заголовки вида If-Modified-Since, If-Match, If-Range и подобные им;
· Частичный «GET» – содержит в запросе Range.
Порядок исполнения запросов, указанных выше, определён отдельно, по стандартам HTTP.
Отличительная особенность запросов GET HTTP – это то, что у него нет «тела» сообщения, то бишь имеются только заголовки. Но данная особенность не значит, что посредствам данного метода не представляется возможным передать серверу определенную информацию. Передача информации осуществляется с помощью специальных «GET» параметров.
Для того чтобы добавить запрос «GET» с параметрами, потребуется в конце URL-адреса напечатать знак «?» и, только после него, начинать задавать их по нижеуказанному закону:
имя_параметра1=значение_параметра1& имя_параметра2=значение_параметра2&…
Разделяет параметры знак «&». Для примера, если понадобилось передать серверу два значения: имя клиента и его возраст, то данную операцию можно сделать следующей строчкой кода:
http://site.ru/page.php?name=dima&age=27
Как только запрос будет выполнен, все данные попадают в так называемую переменную окружения QUERY_STRING, и если понадобилось их получить, то это делается с помощью серверного языка веб-программирования.
Конструкция вида $_GET ["имя параметра"] дозволяет выводить значение данного параметра.
Как результат, при завершении этого кода, в браузере выведется:
Ваше имя: dima
Ваш возраст: 27
Для справки, при переходе по любой ссылке, которая выглядит в HTML в подобном виде:
<a href="link.php?name=dima">Ссылка</a>
…также выполняется запрос к серверу методом запроса «GET».
Пример запроса «GET»
На рисунке выше видим, как можно выполнит «GET» запрос: в строку «Сервер запроса» вводим адрес сервера, из которого будем загружать файл, а в строку «Текст запроса» необходимо скопировать часть ссылки, которая идёт после имени сервера. Пример «GET» запроса:
Если ссылка: www.site.ru/something/file.jpg; то адресом сервера будет www.site.ru, а остальная часть ссылки пойдет в текст запроса /something/file.jpg.
На скриншоте выше в полях находится адрес сервера и ссылка для скачивания картинки в формате PNG. Чтобы выполнить это, необходимо скачать первичную конфигурацию и выполнить «GET» запрос, кликнув по кнопке «Выполнить запрос» на форме.
В первую очередь создаем объект соединения с HTTP ресурсом. У объекта HTTP могут быть такие свойства, как:
- Сервер — это строка подключения, в которой написан адрес сервера;
- Порт – некое число, которое определяет порт сервера, по первичным настройкам, в зависимости от типа подключения, можно написать 80 для незащищенных соединений и 443 для защищенных (SSL);
- Имя пользователя – обязательно только в случае, когда нужна авторизация на сервере;
- Пароль – это пароль пользователя на ресурсе;
- Прокси – необходим, только когда для связи с сервером применяется прокси;
- ЗащищенноеСоединение – по внутренним настройкам имеет значение «ЛОЖЬ», переключение в «ИСТИНА» показывает, что был использован HTTPS протокол.
Помимо того, у объекта HTTPСоединение присутствуют свои методы, обращение к которым позволяет наиболее полным образом описать последовательность выполнения обработчика:
- ВызватьHTTPметод – хранит два обязательных параметра HTTPметод и HTTPзапрос, поддерживает возможность записи «тела» ответа в файл;
- Записать – с помощью PUT запроса отправляет данные на сервер;
- Изменить – изменяет объект, обрабатывая PATCH запросы;
- ОтправитьДляОбработки – метод указывающий на использование POST запроса;
- ПолучитьЗаголовки – очередной метод;
- Удалить – по факту, это запрос «Delete», удаляет переданный в запросе ресурс с сервера.
Во второй строке запроса «GET» создаётся запрос к избранному сайту, текст обращения включает один «слеш», то есть осуществляет переход на главную страницу. В случае, когда после слеша следует другое выражение, осуществился бы переход на другую страницу.
Задача третьей строки запроса «GET» – выполнить запрос к серверу, а четвёртая выводит результат.
2. Отработка перенаправления http запроса
При перенаправлении HTTP необходимо в самой программе получить результат поиска через любую поисковую систему по ключу «Запросы в 1С». Часть кода, которае обеспечивает обращение к GOOGLE представлен ниже.
Код, который обеспечивает обращение к GOOGLE при перенаправлении HTTP
Кроме раннее упомянутых конструкций, присутствуют Заголовки и КодСостояния.
КодСостояния – постоянная величина, оговоренная в «Request for Comments». Она имеет такие значения:
1. Когда всё идёт по плану, то значение находится в диапазоне от 100 до 299;
2. При варианте перенаправления вернется код в диапазоне от 300 до 399;
3. Если имеются ошибки, то параметр примет значение от 400 до 499;
4. Показатель с величиной в области 500-599 подсказывает, что существуют проблемы с сервером.
Каждая страница содержит заголовок, в его тексте можно выделить такие параметры:
Параметры текста заголовка при перенаправлении HTTP
1. Схему подключения (то, что идёт до двух слешей «//»);
2. Адресную строку соединения;
3. Имя пользователя и пароль;
4. Порт и хост для подключения.
Таким образом, получая новый адрес, пользователь получает также возможность сохранить страницу на компьютере и открыть её в браузере (процедура ПолучитьСтраницу).
Смысл процедуры «Получить Страницу» представлено на рисунке ниже.
Процедура Получить страницу при перенаправлении HTTP
По факту, здесь создаётся текстовый документ из тела сайта, запускающий страницу в браузере, который стоит по умолчанию.
Далее файл помещается в корень диска D и называется «test».
Специалист компании «Кодерлайн»
Айдар Фархутдинов