Простой пример HTTP-запроса: поиск в Яндекс/Google

28.12.15

Интеграция - WEB-интеграция

Пример взаимодействия со сторонними REST сервисами из 1С:Предприятия 8.3

Скачать исходный код

Наименование Файл Версия Размер
Поиск в интернете.epf
.epf 8,70Kb
24
.epf 8,70Kb 24 Скачать

Задача:

Возникла задача поиска фраз в интернете. Решил поделиться результатами=)

Статей на тему HTTP-запросов достаточно, но ничего не нашел насчет работы с поисковыми системами.

Предыстория:

Подробнее об использовании GET и POST-запросов можно узнать ниже.

О протоколе HTTP можно узнать тут: https://ru.wikipedia.org/wiki/HTTP

Описание REST интерфейса в прикладных решениях: http://v8.1c.ru/o7/201312rest/index.htm

HTTP-сервисы в прикладных решениях: http://v8.1c.ru/o7/201312http/index.htm

Собственно сам код GET-запроса:

	Если ТочноеСоответствие Тогда
		ТочныйПоиск = "&wordforms=exact";
	КонецЕсли;
	
	Если ГдеИскать = "Yandex" Тогда
		стрURL  = "http://yandex.ru/search/?text=" + СокрЛП(ТекстПоиска) + "&lr=2" + ТочныйПоиск;
	Иначе
		Если ТочноеСоответствие Тогда
			стрURL  = "http://www.google.ru/#q=" + СокрЛП(ТекстПоиска) + "&newwindow=1&tbs=li:1";
		Иначе
			стрURL  = "http://www.google.ru/#q=" + СокрЛП(ТекстПоиска) + "&newwindow=1&tbas=0";
		КонецЕсли;
	КонецЕсли;
	
	//вычислить адрес сервера из адресной сторки
	//пример АдресСервера: "yandex.ru" 
	АдресСервера1 = СтрЗаменить(стрURL, "http://" ,"");  
	ИндексСлеша   = Найти(АдресСервера1, "/");
	АдресСервера  = Сред(АдресСервера1, 0 ,индексСлеша - 1);

        //вычислить строку URL
	//пример URL: "/search/?text=1C&lr=2&wordforms=exact"" 
	ДлинаСтроки = СтрДлина(АдресСервера1);
	URL = "/" + Прав(АдресСервера1, ДлинаСтроки - ИндексСлеша);

	//установим заголовки соединения
	//каждая страница требует индивидуального подхода 
	ЗаголовокGET = Новый Соответствие();
	ЗаголовокGET.Вставить("GET " + URL + " HTTP/1.1");
	//ЗаголовокGET.Вставить("Accept"                   , "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
	//ЗаголовокGET.Вставить("Accept-Encoding"          , "gzip, deflate, sdch");
	//ЗаголовокGET.Вставить("Accept-Language"          , "ru,en;q=0.8");

	Попытка
		
		//ВременныйФайл = ПолучитьИмяВременногоФайла("html");
					
		ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
            Новый СертификатыУдостоверяющихЦентровWindows());
		
	    HTTPСоединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl1);

	    HTTPЗапрос     = Новый HTTPЗапрос(URL, ЗаголовокGET);

		//HTTPОтвет      = HTTPСоединение.Получить(HTTPЗапрос, ВременныйФайл);
	    HTTPОтвет      = HTTPСоединение.Получить(HTTPЗапрос);

	    КодСостояния   = HTTPОтвет.КодСостояния;

		ТекстОтвета    = HTTPОтвет.ПолучитьТелоКакСтроку();
		
	Исключение
	    Сообщить("Не удалось установить соединение с сервером :" 
	        + Символы.ПС + ИнформацияОбОшибке().Описание);
	    Возврат;
	КонецПопытки;	//
	
	Если КодСостояния=200 Тогда
		Если Найти(ТекстОтвета, "По вашему запросу ничего не нашлось")>0 
			ИЛИ Найти(ТекстОтвета, "ничего не найдено.")>0 Тогда
			Сообщить("По вашему запросу ничего не нашлось.");
		Иначе
			Сообщить("Поиск дал результаты.");
		КонецЕсли;
	Иначе
	    Сообщить("Не удалось выполнить поисковый запрос.");
	КонецЕсли;


 

Прикладываю обработку.

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16103    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18194    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85444    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13005    33    8    

12

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16640    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. premierex 204 29.12.15 13:49 Сейчас в теме
(0) Я так полагаю, что следовало бы указать платформу 1С:Предприятие.
На платформе 8.2 следующий код просто вызовет ошибку:

ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());
2. Dimz_z 42 29.12.15 14:03 Сейчас в теме
(1) premier, исправлю. По скриншотам видно, что интерфейс "Такси":)
3. TMV 14 29.12.15 15:13 Сейчас в теме
(0) все, что указано в заголовках соединения, не нужно, кроме первого.
4. BorovikSV 1037 29.12.15 16:15 Сейчас в теме
(0) Клюнул на "Пример использования REST интерфейса 1С:Предприятия", оказался обычный GET запрос.
Зачем же вводить в заблуждение? (от меня минус именно за это)

5. Dimz_z 42 30.12.15 00:17 Сейчас в теме
(4) BorovikSV, не было цели вводить в заблуждение. Исправил.
6. Программулькин 301 30.12.15 09:41 Сейчас в теме
как то не закончено, может результат как то вывести?
7. Dimz_z 42 30.12.15 11:13 Сейчас в теме
(6) Программулькин, пример не является законченным решением=)
8. Arxxximed 34 30.12.15 13:00 Сейчас в теме
(0)
Ой , убрали самое интересное, хорошо что со вчера не обновлял страницу
Вопрос в следующем:
Добавление заголовка HTTPЗапрос
 ЗаголовокGET.Вставить("Accept-Encoding"          , "gzip, deflate, sdch");

Вернет сжатый ответ.

Все же как его прочитать и получить текст HTML?
9. Dimz_z 42 31.12.15 13:28 Сейчас в теме
(8) Arxxximed, html файл файл можно получить так:

ВременныйФайл = ПолучитьИмяВременногоФайла("html");

ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
Новый СертификатКлиентаWindows(СпособВыбораСертификатаWindows.Авто),
Новый СертификатыУдостоверяющихЦентровWindows());

HTTPСоединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl1);

HTTPЗапрос = Новый HTTPЗапрос(URL, ЗаголовокGET);

HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос, ВременныйФайл);

КодСостояния = HTTPОтвет.КодСостояния;

10. Phoenix204 28.11.17 17:36 Сейчас в теме
Здравствуйте, код для яндекса перестал работать (до этого работал)
11. user910617 07.04.19 20:26 Сейчас в теме
Ещё не обновлялась структура http-запроса? Была на хабре статья по поводу изменений
Оставьте свое сообщение