|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Сохранение веб страницы в XML
Доброго дня. Скажите пожалуйста - как реализовать сохранения веб страницы в xml
https://www.nationalbank.kz/rss/rates_all.xml нужно сохрать данную страницу. Есть пример веб браузера, сохраняет в HTML в XML не могу ничего найти |
#2
|
|||
|
|||
А что мешает просто считать файл через, нпример, TIdHTTP и сохраить его?
|
#3
|
||||
|
||||
Хотел я так ответить автору, но вот такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject); const sURL = 'https://www.nationalbank.kz/rss/rates_all.xml'; sFileName = 'd:\test.xml'; var MS: TMemoryStream; begin MS := TMemoryStream.Create; try IdHTTP1.Get(sURL, MS); MS.SaveToFile(sFileName); finally MS.Free; end; end; А еще интересно, что с другим URL всё проходит хорошо, а вот с указанным URL автором такая ошибка. Аж самому стало интересно в чем тут дело Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#4
|
|||
|
|||
Дык эта... А где ssl handler?
Я уже приводил пример, который работает на D10.2 Код:
function TMonitorItem.ReadInternetPage(AUrl : String) : String; var IdHTTP : TIdHTTP; Id_HandlerSocket : TIdSSLIOHandlerSocketOpenSSL; begin IdHTTP := TIdHTTP.Create(Nil); Id_HandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(IdHTTP); Try IdHTTP.Request.BasicAuthentication := False; IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0'; Id_HandlerSocket.SSLOptions.Mode := sslmClient; Id_HandlerSocket.SSLOptions.Method := sslvSSLv23; IdHTTP.IOHandler := Id_HandlerSocket; Result := IdHTTP.Get(AUrl); Finally Id_HandlerSocket.Free; IdHTTP.Free; End; end; |
#5
|
||||
|
||||
Цитата:
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. Последний раз редактировалось Kailon, 31.07.2020 в 13:39. |
#6
|
|||
|
|||
Хм... интересно.
Значит там либо авторизация какая-то нужна, либо крутим разные Mode и Methid в SSL. А эта, библиотеки-то ssl'ные подложил? Там пару ddl'ек нужно рядом с экзешником "бросить"... |
#7
|
||||
|
||||
Библиотеки подкладывал, но получаю всё ту же ошибку либо "Could not Load SSL Library". А Method и Mode у IdSSLIOHandlerSocketOpenSSL крутил по-разному, но увы...
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. |
#8
|
|||
|
|||
Ну если ты видишь ошибку "Could not Load SSL Library", то значит не видит оно библиотеки. Или не та версия библиотек. Для Д10.2 и более ранних у меня сейчас используется библиотеки версии 0.9.8. Там начиная с какой-то версии 1.х все поменялось, так что совсем новые библиотеки для этого не подходят. Ну и разрядность библиотек тоже смотри, для 32 бит нужны 32 битные, для 64 - 64. Иначе не взлетит
|