Подключение к сайту через НТТР

1. user853074 25.03.19 16:31 Сейчас в теме
Есть сайт "https://tripoli.land", никак не получается к нему подключится. С другими всё отлично.
Пробовал через "80" и "443" порт, через защищенное подключение и без. Уже разные варианты не в какую

Если хочу через 80 порт, выдает ошибку 301, и перанаправляет на сайт который я указал ранее с портом "443" и тогда выдает ошибка 404. Как можно ещё подключится к сайту?
+
Найденные решения
5. VladimirB 16 25.03.19 17:43 Сейчас в теме
Я еще с 7.7 пользуюсь com-объектом:
	_СайтИсточник ="https://tripoli.land";
	Адрес=_СайтИсточник;
	
	
//	ИмяВходящегоФайла =ПолучитьВременныйФайл("html");
	
	WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
//	Если ПустаяСтрока(ПараметрыПрокси)=0 Тогда
//		WinHttp.SetProxy(2,ПараметрыПрокси);   //для отладки
//	КонецЕсли;
	WinHttp.Open("GET", Адрес, 0);
//	WinHttp.SetRequestHeader("Host", _СайтИсточник);
  	WinHttp.SetRequestHeader("Accept-Language", "ru");
	WinHttp.SetRequestHeader("Accept-Charset","utf-8");
	WinHttp.setRequestHeader("Content-Language", "ru");
	WinHttp.setRequestHeader("Content-Charset", "utf-8");
	WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
	WinHttp.setRequestHeader("Connection", "close");

	Попытка
//	    _ВремяОжидания=_getPerformanceCounter();
		WinHttp.Send();
		WinHttp.waitForResponse(5);
//		_ВремяОжидания=_getPerformanceCounter()-_ВремяОжидания;
	Исключение   
//		Сообщить(ОписаниеОшибки(),"!");
		Возврат ;
    КонецПопытки;
	Если WinHttp.Status = 200 Тогда
//		Сообщить("HTTP status: "+WinHttp.Status+" "+WinHttp.StatusText+", время ожидания "+_ВремяОжидания+" ms");        
	Иначе
//		Сообщить("HTTP status: "+WinHttp.Status+" "+WinHttp.StatusText+", ошибка!","!");
		Возврат ;
	КонецЕсли;
Показать

этим кодом ваша страница получена
svilsa; user853074; +2
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. Xershi 1484 25.03.19 17:50 Сейчас в теме
(1) в опере открой лог и посмотри как запрос писать, раз еще не в курил как это делается.
+
7. VladimirB 16 25.03.19 17:52 Сейчас в теме
(6) Учатся, это же хорошо. Вопросы задают.
+
2. VladimirB 16 25.03.19 17:23 Сейчас в теме
Без проблем отдает страницу
https://tripoli.land
+
3. VladimirB 16 25.03.19 17:25 Сейчас в теме
(2) Методом GET пробовали?
+
4. user853074 25.03.19 17:36 Сейчас в теме
(3) Недавно начал учить парсинг.

Вот сам код, для остальных моих сайтов он работает отлично:

SSL = Новый ЗащищенноеСоединениеOpenSSL(); 
						
	СтруктураURI = СтруктураURI(ПолныйАдресРесурса); 
	
	Если ИспSSL Тогда
		HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, Порт,,,, Таймаут, SSL);
	Иначе	
		HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост,,,,, Таймаут); 
	КонецЕсли;

	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Host", СтруктураURI.Хост);	
	Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
	
	Состояние("Подключение к " + СтруктураURI.Хост); 
		
	//СтруктураURI.ПутьНаСервере = Лев(СтруктураURI.ПутьНаСервере, СтрДлина(СтруктураURI.ПутьНаСервере)-1);
	
	HTTPЗапрос = Новый HTTPЗапрос("/" + СтруктураURI.ПутьНаСервере, Заголовки);
	
	Попытка
		Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	Исключение
		  //исключение здесь говорит о том, что запрос не дошел до HTTP-Сервера
		 Сообщить("Произошла сетевая ошибка при подключении к " + СтруктураURI.Хост);
		// Возврат "";
	 КонецПопытки;
Показать


порт использую -443 (+ ссл), хост- tripoli.land, и дальше компании, но даже к основному не получаеться.

А что такое гет?
+
5. VladimirB 16 25.03.19 17:43 Сейчас в теме
Я еще с 7.7 пользуюсь com-объектом:
	_СайтИсточник ="https://tripoli.land";
	Адрес=_СайтИсточник;
	
	
//	ИмяВходящегоФайла =ПолучитьВременныйФайл("html");
	
	WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
//	Если ПустаяСтрока(ПараметрыПрокси)=0 Тогда
//		WinHttp.SetProxy(2,ПараметрыПрокси);   //для отладки
//	КонецЕсли;
	WinHttp.Open("GET", Адрес, 0);
//	WinHttp.SetRequestHeader("Host", _СайтИсточник);
  	WinHttp.SetRequestHeader("Accept-Language", "ru");
	WinHttp.SetRequestHeader("Accept-Charset","utf-8");
	WinHttp.setRequestHeader("Content-Language", "ru");
	WinHttp.setRequestHeader("Content-Charset", "utf-8");
	WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
	WinHttp.setRequestHeader("Connection", "close");

	Попытка
//	    _ВремяОжидания=_getPerformanceCounter();
		WinHttp.Send();
		WinHttp.waitForResponse(5);
//		_ВремяОжидания=_getPerformanceCounter()-_ВремяОжидания;
	Исключение   
//		Сообщить(ОписаниеОшибки(),"!");
		Возврат ;
    КонецПопытки;
	Если WinHttp.Status = 200 Тогда
//		Сообщить("HTTP status: "+WinHttp.Status+" "+WinHttp.StatusText+", время ожидания "+_ВремяОжидания+" ms");        
	Иначе
//		Сообщить("HTTP status: "+WinHttp.Status+" "+WinHttp.StatusText+", ошибка!","!");
		Возврат ;
	КонецЕсли;
Показать

этим кодом ваша страница получена
svilsa; user853074; +2
8. user853074 25.03.19 18:01 Сейчас в теме
(5)

Спасибо вашим методом получилось подключится к странице, но почему такое не работает?
Хотелось бы разобраться почему так не получается у меня(


(6)

Пользуюсь хромом, не понимаю, как я могу там посмотреть запрос к сайту? Я могу посмотреть код страницы и там есть обращение к сайту? или я неправильно понимаю?
+
9. VladimirB 16 25.03.19 18:14 Сейчас в теме
(8) Стандартный объект Windows
Вы так подключались?
WinHttp=Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
+
10. VladimirB 16 25.03.19 18:15 Сейчас в теме
Это в 7/7 СоздатьОбъект
а в 8.х Новый COMОбъект(
+
11. VladimirB 16 25.03.19 18:22 Сейчас в теме
// Загружает содержимое из Интернет по протоколу HTTP(S)
// с использованием методов GET, POST или PUT.
//
Функция ЗагрузитьСодержимоеИзИнтернет(
	Знач URL,
	Знач Логин = Неопределено,
	Знач Пароль = Неопределено,
	ДопПараметры = Неопределено) Экспорт

	Результат = Новый Структура;
	Результат.Вставить("КодОшибки"         , "");
	Результат.Вставить("СообщениеОбОшибке" , "");
	Результат.Вставить("ИнформацияОбОшибке", "");
	Результат.Вставить("Содержимое"        , Неопределено);
	Результат.Вставить("КодСостояния"      , 0);
	Результат.Вставить("ФорматОтвета"      , 0);

	// Формат ответа: 0 - имя файла ответа, 1 - как строка, 2 - как двоичные данные.
	// Метод: "GET", "POST" или "PUT".
	// ДанныеДляОбработки: данные, передаваемые методом POST.
	// ФорматДанныхДляОбработки: 0 - имя файла, 1 как строка, 2 - как двоичные данные.
	// Заголовки - заголовки запроса.
	ПараметрыПолучения = Новый Структура;
	ПараметрыПолучения.Вставить("ФорматОтвета"            , 0);
	ПараметрыПолучения.Вставить("Метод"                   , "GET");
	ПараметрыПолучения.Вставить("ДанныеДляОбработки"      , Неопределено);
	ПараметрыПолучения.Вставить("ФорматДанныхДляОбработки", 0);
	ПараметрыПолучения.Вставить("Заголовки"               , Неопределено);
	ПараметрыПолучения.Вставить("ИмяФайлаОтвета"          , Неопределено);
	ПараметрыПолучения.Вставить("Таймаут"                 , -1);
	ПараметрыПолучения.Вставить("НастройкиПрокси"         , Неопределено);
	
	Если ДопПараметры <> Неопределено Тогда
		ЗаполнитьЗначенияСвойств(ПараметрыПолучения, ДопПараметры);
	КонецЕсли;
	
	Если ПараметрыПолучения.Таймаут = -1 Тогда
		// Таймаут по умолчанию.
		ПараметрыПолучения.Таймаут = 30;
	КонецЕсли;
	
	Результат.ФорматОтвета = ПараметрыПолучения.ФорматОтвета;
	
	КоличествоПеренаправлений  = 0;
	МаксКолвоПеренаправлений   = 7;
	Перенаправления            = Новый Массив;
	ВыполненныеПеренаправления = Новый Соответствие;
	ПроксиПоСхемам             = Новый Соответствие;
	ЗащищенноеСоединениеКэш    = Неопределено;
	
	URLДляПолучения = URL;
	HTTPЗапрос = Новый HTTPЗапрос;
	Если ПараметрыПолучения.Заголовки <> Неопределено Тогда
		HTTPЗапрос.Заголовки = ПараметрыПолучения.Заголовки;
	КонецЕсли;
	ТелоУстановлено = Ложь;
	Ответ = Неопределено;
	Пока КоличествоПеренаправлений < МаксКолвоПеренаправлений Цикл

		СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(URLДляПолучения);
		Если СтруктураURI.Схема <> "https" Тогда
			ЗащищенноеСоединение = Неопределено;
		Иначе
			Если ЗащищенноеСоединениеКэш = Неопределено Тогда
				ЗащищенноеСоединениеКэш = НовыйЗащищенноеСоединение();
			КонецЕсли;
			ЗащищенноеСоединение = ЗащищенноеСоединениеКэш;
		КонецЕсли;

		Если НЕ ПустаяСтрока(СтруктураURI.Логин) Тогда
			ЛогинДляПолучения  = СтруктураURI.Логин;
			ПарольДляПолучения = СтруктураURI.Пароль;
		Иначе
			ЛогинДляПолучения  = Логин;
			ПарольДляПолучения = Пароль;
		КонецЕсли;

		Если СтруктураURI.Порт = Неопределено ИЛИ ПустаяСтрока(СтруктураURI.Порт) Тогда
			Порт = ?(ЗащищенноеСоединение = Неопределено, 80, 443);
		Иначе
			Порт = Число(СтруктураURI.Порт);
		КонецЕсли;

		Прокси = ПроксиПоСхемам.Получить(СтруктураURI.Схема);
		Если Прокси = Неопределено Тогда
			Если ПараметрыПолучения.НастройкиПрокси = Неопределено Тогда
				Прокси = ПолучениеФайловИзИнтернетаКлиентСервер.ПолучитьПрокси(СтруктураURI.Схема);
			Иначе
				Прокси = СформироватьИнтернетПрокси(ПараметрыПолучения.НастройкиПрокси, СтруктураURI.Схема);
			КонецЕсли;
			ПроксиПоСхемам.Вставить(СтруктураURI.Схема, Прокси);
		КонецЕсли;

		Соединение = Новый HTTPСоединение(
			СтруктураURI.Хост,
			Порт,
			ЛогинДляПолучения,
			ПарольДляПолучения,
			Прокси,
			ПараметрыПолучения.Таймаут,
			ЗащищенноеСоединение);

		Попытка

			HTTPЗапрос.АдресРесурса = СтруктураURI.ПутьНаСервере;

			Если ПараметрыПолучения.Метод = "GET" Тогда
				Ответ = Соединение.Получить(HTTPЗапрос, ПараметрыПолучения.ИмяФайлаОтвета);
			ИначеЕсли ПараметрыПолучения.Метод = "HEAD" Тогда
				Ответ = Соединение.ПолучитьЗаголовки(HTTPЗапрос);
			Иначе

				Если НЕ ТелоУстановлено Тогда

					Если ПараметрыПолучения.ДанныеДляОбработки <> Неопределено Тогда

						Если ПараметрыПолучения.ФорматДанныхДляОбработки = 0 Тогда

							HTTPЗапрос.УстановитьИмяФайлаТела(ПараметрыПолучения.ДанныеДляОбработки);

						ИначеЕсли ПараметрыПолучения.ФорматДанныхДляОбработки = 1 Тогда

							HTTPЗапрос.УстановитьТелоИзСтроки(ПараметрыПолучения.ДанныеДляОбработки);

						Иначе

							HTTPЗапрос.УстановитьТелоИзДвоичныхДанных(ПараметрыПолучения.ДанныеДляОбработки);

						КонецЕсли;

					КонецЕсли;

					ТелоУстановлено = Истина;

				КонецЕсли;

				Если ПараметрыПолучения.Метод = "PUT" Тогда
					Ответ = Соединение.Записать(HTTPЗапрос);
				Иначе
					// POST
					Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос, ПараметрыПолучения.ИмяФайлаОтвета);
				КонецЕсли;

			КонецЕсли;

		Исключение
			
			ПредставлениеОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
			ПодробноеОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
				НСтр("ru = 'Не удалось загрузить содержимое (%1). %2'"),
				URL,
				ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
			
			// Диагностика соединения с ресурсом.
			Попытка
				
				РезультатДиагностики = ОбщегоНазначенияКлиентСервер.ДиагностикаСоединения(URL);
				ОписаниеРезультатаДиагностики = НСтр("ru = 'См. результаты диагностики соединения в журнале регистрации.'");
				
			Исключение
				
				ОписаниеРезультатаДиагностики = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Не удалось выполнить диагностику соединения. %1'"),
					ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
				
			КонецПопытки;
			
			УстановитьОписаниеОшибки(
				Результат,
				"ConnectError",
				ПредставлениеОшибки,
				ПодробноеОписаниеОшибки + Символы.ПС + ОписаниеРезультатаДиагностики,
				Перенаправления);
			Возврат Результат;
			
		КонецПопытки;

		Результат.КодСостояния = Ответ.КодСостояния;

		Если Ответ.КодСостояния = 301 // 301 Moved Permanently
			ИЛИ Ответ.КодСостояния = 302 // 302 Found, 302 Moved Temporarily
			ИЛИ Ответ.КодСостояния = 303 // 303 See Other by GET
			ИЛИ Ответ.КодСостояния = 307 Тогда // 307 Temporary Redirect

			КоличествоПеренаправлений = КоличествоПеренаправлений + 1;

			Если КоличествоПеренаправлений > МаксКолвоПеренаправлений Тогда
				УстановитьОписаниеОшибки(
					Результат,
					"ServerError",
					НСтр("ru = 'Превышено количество перенаправлений.'"),
					СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
						НСтр("ru = 'Ошибка сервера при получении файла (%1). Превышено количество перенаправлений (%2).'"),
						URL,
						МаксКолвоПеренаправлений),
					Перенаправления);
				Возврат Результат;
			Иначе
				Location = Ответ.Заголовки.Получить("Location");
				Если Location = Неопределено Тогда
					УстановитьОписаниеОшибки(
						Результат,
						"ServerError",
						НСтр("ru = 'Некорректное перенаправление.'"),
						СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
							НСтр("ru = 'Ошибка сервера (%1) при получении файла (%2). Некорректное перенаправление, отсутствует HTTP-заголовок ответа ""Location"".'"),
							Ответ.КодСостояния,
							URL),
						Перенаправления);
					Возврат Результат;
				Иначе
					Location = СокрЛП(Location);
					Если ПустаяСтрока(Location) Тогда
						УстановитьОписаниеОшибки(
							Результат,
							"ServerError",
							НСтр("ru = 'Некорректное перенаправление.'"),
							СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
								НСтр("ru = 'Ошибка сервера (%1) при получении файла (%2). Некорректное перенаправление, пустой HTTP-заголовок ответа ""Location"".'"),
								Ответ.КодСостояния,
								URL),
							Перенаправления);
						Возврат Результат;
					КонецЕсли;

					Если ВыполненныеПеренаправления.Получить(Location) <> Неопределено Тогда
						УстановитьОписаниеОшибки(
							Результат,
							"ServerError",
							НСтр("ru = 'Циклическое перенаправление.'"),
							СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
								НСтр("ru = 'Ошибка сервера (%1) при получении файла (%2). Циклическое перенаправление (%3).'"),
								Ответ.КодСостояния,
								URL,
								Location),
							Перенаправления);
						Возврат Результат;
					КонецЕсли;

					ВыполненныеПеренаправления.Вставить(Location, Истина);
					URLДляПолучения = Location;

					Перенаправления.Добавить(Строка(Ответ.КодСостояния) + ": " + Location);

				КонецЕсли;
				
			КонецЕсли;

		Иначе

			Прервать;

		КонецЕсли;

	КонецЦикла;

	Если ПараметрыПолучения.ФорматОтвета = 0 Тогда
		Результат.Содержимое = Ответ.ПолучитьИмяФайлаТела();
	ИначеЕсли ПараметрыПолучения.ФорматОтвета = 1 Тогда
		Результат.Содержимое = Ответ.ПолучитьТелоКакСтроку();
	ИначеЕсли ПараметрыПолучения.ФорматОтвета = 2 Тогда
		Результат.Содержимое = Ответ.ПолучитьТелоКакДвоичныеДанные();
	Иначе
		Результат.Содержимое = Ответ;
	КонецЕсли;
	
	// Обработка ответа
	Если Ответ.КодСостояния < 200 Или Ответ.КодСостояния >= 300 Тогда

		// Анализ ошибки
		Если Ответ.КодСостояния = 407 Тогда

			// Ошибка подключения - не пройдена аутентификация на прокси-сервере.
			УстановитьОписаниеОшибки(
				Результат,
				"ConnectError",
				НСтр("ru = 'Ошибка аутентификации на прокси-сервере.'"),
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Ошибка клиента (%1) при выполнении запроса к ресурсу (%2).
						|Тело ответа: %3'"),
					Ответ.КодСостояния,
					URL,
					Лев(Ответ.ПолучитьТелоКакСтроку(), 5120)),
				Перенаправления);

		ИначеЕсли Ответ.КодСостояния < 200
			ИЛИ Ответ.КодСостояния >= 300
			И Ответ.КодСостояния < 400 Тогда

			// Формат ответа сервера не поддерживается.
			УстановитьОписаниеОшибки(
				Результат,
				"ServerError",
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Некорректный ответ сервера (%1).'"),
					Ответ.КодСостояния),
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Ошибка сервера при получении файла (%1). Некорректный (неподдерживаемый) ответ (%2).
						|Тело ответа: %3'"),
					URL,
					Ответ.КодСостояния,
					Лев(Ответ.ПолучитьТелоКакСтроку(), 5120)),
				Перенаправления);

		ИначеЕсли Ответ.КодСостояния >= 400 И Ответ.КодСостояния < 500 Тогда

			// Ошибка клиентской части - некорректный запрос.
			УстановитьОписаниеОшибки(
				Результат,
				"ClientError",
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Ошибка (%1) при выполнении запроса к ресурсу.'"),
					Строка(Ответ.КодСостояния)),
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Ошибка клиента (%1) при выполнении запроса к ресурсу (%2).
						|Тело ответа: %3'"),
					Ответ.КодСостояния,
					URL,
					Лев(Ответ.ПолучитьТелоКакСтроку(), 5120)),
				Перенаправления);

		Иначе

			// Ошибка сервера - 5хх
			УстановитьОписаниеОшибки(
				Результат,
				"ServerError",
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Код ошибки: %1.'"),
					Строка(Ответ.КодСостояния)),
				СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
					НСтр("ru = 'Ошибка сервера (%1) при обработке запроса к ресурсу (%2).
						|Тело ответа: %3'"),
					Ответ.КодСостояния,
					URL,
					Лев(Ответ.ПолучитьТелоКакСтроку(), 5120)),
				Перенаправления);

		КонецЕсли;

		ДобавитьСписокПеренаправленийКИнформацииОбОшибке(
			Результат.ИнформацияОбОшибке,
			Перенаправления);

	КонецЕсли;

	Возврат Результат;

КонецФункции
Показать


стандартная процедура для 8.х
Метод нужен.
user853074; +1
12. VladimirB 16 25.03.19 18:26 Сейчас в теме
У вас этого не нашел
Ответ = Соединение.Получить(HTTPЗапрос, ПараметрыПолучения.ИмяФайлаОтвета);
+
13. VladimirB 16 25.03.19 18:27 Сейчас в теме
Вы отправили только. А что ждете в ответ?
+
14. user853074 26.03.19 10:57 Сейчас в теме
(13)

Мой код полностью был такой, я потом получал тело страницы

SSL = Новый ЗащищенноеСоединениеOpenSSL(); 
						
	СтруктураURI = СтруктураURI(ПолныйАдресРесурса); 
	
	Если ИспSSL Тогда
		HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост, Порт,,,, Таймаут, SSL);
	Иначе	
		HTTPСоединение = Новый HTTPСоединение(СтруктураURI.Хост,Порт,,,, Таймаут); 
	КонецЕсли;

	Заголовки = Новый Соответствие;
	Заголовки.Вставить("Host", Хост);	
	Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
	
	Состояние("Подключение к " + СтруктураURI.Хост); 
		
	//СтруктураURI.ПутьНаСервере = Лев(СтруктураURI.ПутьНаСервере, СтрДлина(СтруктураURI.ПутьНаСервере)-1);
	
	HTTPЗапрос = Новый HTTPЗапрос("/" + СтруктураURI.ПутьНаСервере, Заголовки);
	
	Попытка
		Результат = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	Исключение
		  //исключение здесь говорит о том, что запрос не дошел до HTTP-Сервера
		 Сообщить("Произошла сетевая ошибка при подключении к " + СтруктураURI.Хост);
		 Возврат "";
	 КонецПопытки;
	  	 
	 // Анализируем фатальные ошибки
	 // В большинстве случаев нужно остановить работу и показать пользователю сообщение об ошибке,
	 // включив в него HTTP-статус
	 
	 // Ошибки 4XX говорят о неправильном запросе - в широком смысле
	 // Может быть неправильный адрес, ошибка аутентификации, плохой формат запроса
	 // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4
	 Если Результат.КодСостояния >= 400 и Результат.КодСостояния < 500  Тогда
	   	 Сообщить("Код статуса больше 4XX, ошибка запроса.  Код статуса: " + Результат.КодСостояния);
		 
		 Возврат ""; 
		 
	 КонецЕсли;
	 
	 // Ошибки 5XX говорят о проблемах на сервере (возможно, прокси-сервер)
	 // Это может быть программная ошибка, нехватка памяти, ошибка конфигурации и т.д.
	 // Подробнее смотри http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5
	 Если Результат.КодСостояния >= 500 и Результат.КодСостояния < 600  Тогда
	   	 Сообщить("Код статуса больше 5XX, ошибка сервера. Код статуса: " + Результат.КодСостояния);
		 
		 Возврат "";
		 
	 КонецЕсли;
	   
	 // Обрабатываем перенаправление
	 Если Результат.КодСостояния >= 300 и Результат.КодСостояния < 400  Тогда
	   	 Сообщить("Код статуса больше 3XX, Перенаправление. Код статуса: " + Результат.КодСостояния);
		 Если Результат.КодСостояния = 301 Тогда 
			 
			 Состояние("Код статуса 301, Перемещено навсегда.");
			 АдресРесурса = Результат.Заголовки.Получить("Location");			 
			 Если АдресРесурса <> Неопределено Тогда
				 Состояние("Выполняю запрос по новому адресу " + АдресРесурса);
				 
				 HTTPЗапрос = Новый HTTPЗапрос("/" + СтруктураURI.ПутьНаСервере);
				 
				 Возврат ВыполнитьHTTPЗапрос(АдресРесурса);
			 Иначе
				 Сообщить("Код статуса 301, Сервер не сообщил адрес ресурса!");
				 Возврат "";
			 КонецЕсли;
			 
			 
		 ИначеЕсли Результат.КодСостояния = 302 Тогда
			 
			 Состояние("Код статуса 302, Постоянное перенаправление.");
			 АдресРесурса = Результат.Заголовки.Получить("Location");
			 Если АдресРесурса <> Неопределено Тогда
				Состояние("Выполняю запрос по новому адресу " + АдресРесурса);
				 
				 Возврат ВыполнитьHTTPЗапрос(АдресРесурса);
			 Иначе
				 Сообщить("Код статуса 302, Сервер не сообщил адрес ресурса!");
				 Возврат ""; 
			 КонецЕсли;
		 КонецЕсли;
	 КонецЕсли;
	 // Статусы 1XX и 2XX считаем хорошими
	 Если Результат.КодСостояния < 300 Тогда 
		   
		   ТекстСтраницы = Результат.ПолучитьТелоКакСтроку();
		   
		   Возврат ТекстСтраницы; 
		   
	 КонецЕсли; 
Показать



Ваш код мне понравился больше, он компактнее намного. Спасибо вам огромное
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот