![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго дня. Скажите пожалуйста - как реализовать сохранения веб страницы в 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. Иначе не взлетит
![]() |