|
|
Как получить код web страницы ?
igouranga, asady, Sanchez_22, Jackman, runuts, Fragster, Hmster, Климов Сергей, reg0303, A_G, Aka_demik, Pasha_Nik, Гений 1С, Dedal, Участковый, Indian, LLeonidov, Garykom, dnab, vsy, Ильф, Timon1405, paramedic, formista2000, oleg_km, Gucci76, Pprog151713, Voronve, Андрюха, НаборДанных, Lexey_, Доминошник, Greeen, serpentt, ads55, arsik, Dzenn, Гипервизор, obs191, Умный Слоненок, mikecool, Lama12, yurikmellon2, Bad_Aleks, Wildman666, unenu, Федя Тяпкин, Волшебник, vbus, sikuda, Kigo_Kigo, Prog_man, СеньорПрограммист, RVN, 2S, программистище, Amfiaray, banco, Kobol, privetik, Fish, sergey198, RomanYS, Crusher, DeeK, trad, breezee, takefive, DiMel_77, Джордж1, denk32, AAA, Vstur, 2mugik, dmt, Vovik, p-soft, Мультук, PLUT, KJlag, fbear, phabeZ, Kuzmich123, Chai Nic, okmail, CepeLLlka, lEvGl, Tatitutu, avkynev, Winnie Buh, maxab72, Alexor
| ☑ |
|
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 или что-то подобного.
|
|
|
20
Pasha_Nik
11.11.25
✎
14:14
|
Реализовал через обход HTML документа, код ниже
Если Ответ.КодСостояния = 200 Тогда
HTMLСтрока = Ответ.ПолучитьТелоКакСтроку();
Иначе
Сообщить("Код ответа: " + Ответ.КодСостояния);
КонецЕсли;
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.УстановитьСтроку(HTMLСтрока);
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
Обход = ДокументHTML.СоздатьОбходДерева(ДокументHTML.Тело);
|
|