Имя: Пароль:
1C
 
Как получить код web страницы ?
0 Pasha_Nik
 
11.11.25
09:13
Здравствуйте. мне нужно получить код веб страницы в 1С УПП пишу такой код
ВебСтраница = "https://app.fgislk.gov.ru/pudpd/api/pudpd/public/qr/html?d=NJM%2F3eDJG6Lcv%2BIrMoDf......
СоединениеHTTP = Новый HTTPСоединение(ВебСтраница, 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
    ЗапросHTTP = Новый HTTPЗапрос("/");
    Ответ = СоединениеHTTP.Получить(ЗапросHTTP);
    
    Если Ответ.КодСостояния = 200 Тогда
        Сообщить(Ответ.ПолучитьТелоКакСтроку());
    Иначе
        Сообщить("Код ответа: " + Ответ.КодСостояния);
    КонецЕсли;

При выполнении кода выдает ошибку
Ошибка при вызове метода контекста (Получить)
{ВнешняяОбработка.ПарсингВебСтраницы.Форма.Форма.Форма(25)}:    Ответ = СоединениеHTTP.Получить(ЗапросHTTP);
по причине:
Ошибка работы с Интернет:  Couldn't resolve host name

Как правильно написать, чтобы получить код страницы ?
1 Волшебник
 
11.11.25
09:15
Пропишите DNS сервер Яндекса 77.88.8.8
2 Pasha_Nik
 
11.11.25
09:32
Пришлите код где прописать DNS сервер Яндекса 77.88.8.8 ?
3 Волшебник
 
11.11.25
09:34
(2) В настройках интернета
4 Pasha_Nik
 
11.11.25
09:42
А как сетевые настройки влияют ?
Я же через браузер захожу на ВебСтраница = "https://app.fgislk.gov.ru/pudpd/api/pudpd/public/qr/html?d=NJM%2F3eDJG6Lcv%2BIrMoDf......
нормально ?
5 Волшебник
 
11.11.25
09:44
Наверное обращение идёт с сервера, а там другие настройки
6 Pasha_Nik
 
11.11.25
10:01
Прописал код так

ВебСтраница2 = "app.fgislk.gov.ru/pudpd/api/pudpd/public/qr/html?d=NJM%2F3eDJG6Lcv%2BIrMoDf......
СоединениеHTTP = Новый HTTPСоединение(ВебСтраница2);
    ЗапросHTTP = Новый HTTPЗапрос("/");
    Ответ = СоединениеHTTP.Получить(ЗапросHTTP);
    
    Если Ответ.КодСостояния = 200 Тогда
        Сообщить(Ответ.ПолучитьТелоКакСтроку());
    Иначе
        Сообщить("Код ответа: " + Ответ.КодСостояния);
    КонецЕсли;

При запуске выдает
Код ответа: 308
Код ответа: 400
Код ответа: 500

то 308 то 400 то 500 ?
7 Garykom
 
гуру
11.11.25
10:06
- Где у меня ошибка?
- В ДНК!
8 Garykom
 
гуру
11.11.25
10:08
(0) Почитай в СП про HTTPСоединение и HTTPЗапрос, их параметры
Найди рабочие примеры, пойми сам где ступил
9 Pasha_Nik
 
11.11.25
10:25
когда обращаюсь к сайту 1c.alexcode.ru код
СоединениеHTTP = Новый HTTPСоединение("1c.alexcode.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
ЗапросHTTP = Новый HTTPЗапрос("/");
Ответ = СоединениеHTTP.Получить(ЗапросHTTP);
Если Ответ.КодСостояния = 200 Тогда
        Сообщить(Ответ.ПолучитьТелоКакСтроку());
    Иначе
        Сообщить("Код ответа: " + Ответ.КодСостояния);
    КонецЕсли;

получаю код веб страницы 1c.alexcode.ru

когда обращаюсь на ВебСтраница2 = "app.fgislk.gov.ru/pudpd/api/pudpd/public/qr/html?d=NJM%2F3eDJG6Lcv%2BIrMoDf..
пишу СоединениеHTTP = Новый HTTPСоединение(ВебСтраница2, 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());

выдает
Код ответа: 500
10 Garykom
 
гуру
11.11.25
10:28
(9) И сам не видишь?
Новый HTTPСоединение("app.fgislk.gov.ru", ...)
Новый HTTPЗапрос("/pudpd/api/pudpd/public/qr/html?d=...");
11 Garykom
 
гуру
11.11.25
10:30
Только еще надо редиректы учесть
И код страницы может динамически формироваться JS

Придется использовать ПолеHTML (да только на клиенте, причем с веб-клиентом проблемы)
Дожидаться загрузки и только затем получать код страницы
12 Pasha_Nik
 
11.11.25
10:36
До этого прописывал не получалось, ща прописал
СоединениеHTTP = Новый HTTPСоединение("app.fgislk.gov.ru", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());

Новый HTTPЗапрос("/pudpd/api/pudpd/public/qr/html?d=...");

получилась код страницы выдало
13 Garykom
 
гуру
11.11.25
10:49
Передача параметров (?d=..&x=..) надо кодировать каждый через
ПараметрD_URL = КодироватьСтроку(ПараметрD, СпособКодированияСтроки.КодировкаURL);
ПараметрX_URL = КодироватьСтроку(ПараметрX, СпособКодированияСтроки.КодировкаURL);
АдресРесурса = СтрШаблон("/pudpd/api/pudpd/public/qr/html?d=%1&x=%2", ПараметрD_URL, ПараметрX_URL);
Новый HTTPЗапрос(АдресРесурса);

вот эта хрень "NJM%2F3eDJG6Lcv%2BIrMoDf......" с "%2F" уже в закодированном виде
исходный параметр там с пробелами и даже кириллица вероятно
в url только латиница и некоторые символы разрешены
14 Pasha_Nik
 
11.11.25
10:50
Подскажите как в Чтение = Новый ЧтениеXML; передать результат
считанной веб страницы ?
15 Garykom
 
гуру
11.11.25
10:51
(14) Хочу огорчить но HTML <> XML
16 Pasha_Nik
 
11.11.25
11:01
А через ЧтениеHTML = Новый ЧтениеHTML; передать результат
считанной веб страницы ?
17 paramedic
 
11.11.25
11:08
(16) ОткрытьПоток
ОткрытьФайл
УстановитьСтроку
Что больше нравится.
18 Pasha_Nik
 
11.11.25
11:16
Напишите пример как сделать через поток ?
19 Dzenn
 
гуру
11.11.25
12:21
Судя по адресу страницы, это не обычная страница HTML в интернете, а отображение API какого-то приложения. Соответственно, корректным способом решения задачи является именно обращение к предоставляемому разработчиком API. Если же, по каким-то причинам, это невозможно, и ты партизанишь, то специально для партизан там вход, вероятно, закрыт на уровне CORS или что-то подобного.