Простой пример 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 разных брендов в одной информационной базе в ручном и автоматическом режиме. Без существенных изменений типовой конфигурации. Проверено с брендами: Интеграция 1С и GEELY Интеграция 1С и HAVAL Интеграция 1С и KIA Интеграция 1С и FORD Интеграция 1С и LADA ГАРАНТИЯ 100% ВНЕДРЕНИЯ!

36000 руб.

03.08.2020    15744    10    17    

11

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

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

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

5040 руб.

04.05.2021    17547    6    15    

13

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

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

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

12000 руб.

02.02.2021    16358    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25736    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88578    160    215    

318
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 1036 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-запроса? Была на хабре статья по поводу изменений
Оставьте свое сообщение