Во встроенном языке 1С есть объект HTTPСоединение для работы с web. С помощью объекта HTTPСоединение встроенного языка 1С, можно запрашивать web-страницы. Данный объект поддерживает работу с протоколами: HTTP 1.0, HTTP 1.1, SSL 3.0, TLS 1.0.
Функция ПолучитьHTMLСтраницу() Функция возвращает текст запрошенной HTML страницы. Переменные
- Сервер - адрес сервера без http
- АдресСтраницы - строка URL страницы без домена
- Кодировка - строка кодировки отправки и считывания данных(utf-8, windows-1251,...)
- ЗащищенноеСоединение - булево значение, которое указывает использовать защищённое соединение или нет
- Таймаут - время ожидания соединения с сервером измеряется в секундах
Получение результата URL запроса из объекта НТТРОтвет
Функция ПолучитьHTMLСтраницу1() Сервер = "1c.ru"; АдресСтраницы = "map.jsp"; Кодировка = "utf-8"; ЗащищенноеСоединение = Истина; Таймаут = 100; SSL = ?(ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено); ЗаголовкиHTTP = Новый Соответствие; ЗаголовкиHTTP.Вставить("Host", Сервер); ЗаголовкиHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); Попытка НТТР = Новый HTTPСоединение(Сервер, , , , , Таймаут, SSL); ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницы, ЗаголовкиHTTP);
//Отправка POST-запроса ПараметрыPOST = "&m1=value1&m2=value2&m3=value3"; ЗапросHTTP.УстановитьТелоИзСтроки(ПараметрыPOST); НТТРОтвет = НТТР.ОтправитьДляОбработки(ЗапросHTTP); //Отправка GET-запроса НТТРОтвет = НТТР.Получить(ЗапросHTTP);
Исключение Сообщить("Не удалось запросить web страницу " + ОписаниеОшибки()); Возврат ""; КонецПопытки; Возврат НТТРОтвет.ПолучитьТелоКакСтроку(Кодировка);
КонецФункции
Получение результата URL запроса из текстового файла
Функция ПолучитьHTMLСтраницу2() Сервер = "1c.ru"; АдресСтраницы = "map.jsp"; Кодировка = "utf-8"; ЗащищенноеСоединение = Истина; Таймаут = 100; SSL = ?(ЗащищенноеСоединение, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено); ЗаголовкиHTTP = Новый Соответствие; ЗаголовкиHTTP.Вставить("Host", Сервер); ЗаголовкиHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded"); Попытка НТТР = Новый HTTPСоединение(Сервер, , , , , Таймаут, SSL); ЗапросHTTP = Новый HTTPЗапрос(АдресСтраницы, ЗаголовкиHTTP);
//Отправка POST-запроса ПараметрыPOST = "&m1=value1&m2=value2&m3=value3"; ЗапросHTTP.УстановитьТелоИзСтроки(ПараметрыPOST); НТТРОтвет = НТТР.ОтправитьДляОбработки(ЗапросHTTP, "Text.txt"); //Отправка GET-запроса НТТРОтвет = НТТР.Получить(ЗапросHTTP, "Text.txt");
Исключение Сообщить("Не удалось запросить web-страницу " + ОписаниеОшибки()); Возврат ""; КонецПопытки; ТД = Новый ТекстовыйДокумент; ТД.Прочитать("Text.txt", Кодировка); Результат = ТД.ПолучитьТекст();
Возврат Результат;
КонецФункции
Также, используя COM-технологию можно запросить web-страницу через COM-объект WinHTTP.WinHttpRequest.
|