![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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'ек нужно рядом с экзешником "бросить"... |