Вопрос: Как скачать простой ini-файл по протоколу https? - страница 2

 
SardakEN:

Здравствуйте. Я именно тот, кто не смог получить файл из дискорда.
Пишу на Delphi-7, в связи с необходимой лицензионной чистотой среды разработки.
Раньше мне просто никогда не требовались сетевые возможности при программировании.
А теперь вот понадобилось.
Неужели только переход на современную версию Delphi может меня спасти???

Фрагмент кода:

Ошибка выскакивает на строке с  IdHTTP1.Get

Может IdHTTP1 не поддерживает SSL/TLS запросы, вы же на https стучитесь.
А для SSL/TLS скорее всего нужны другие методы. Гуглите примеры для https
Проверьте запросы сперва на эхо сервер https.

 
Roman:

Может IdHTTP1 не поддерживает SSL/TLS запросы, вы же на https стучитесь.
А для SSL/TLS скорее всего нужны другие методы. Гуглите примеры для https
Проверьте запросы сперва на эхо сервер https.

Возможно, не поддерживает TLS>=1.2, а сервер может не поддерживать все SSL и TLS<1.2.

 
JRandomTrader:

Возможно, не поддерживает TLS>=1.2, а сервер может не поддерживать все SSL и TLS<1.2.

Чуть загуглив, становится понятно, что для метода IdHTTP1 нужно дополнительно настраивать свойства компонента TIdHTTP - IOHandler
указать компонент TIdSSLIOHandlerSocketOpenSSL, и установить зависимые библиотеки.
В общем мне кажется проблема именно в https  

Indy+SSL. Загрузка https-страниц. TIdHTTP+SSL
Indy+SSL. Загрузка https-страниц. TIdHTTP+SSL
  • 2020.08.23
  • devdelphi.ru
Всем привет, небольшая заметка о том, как можно с помощью компонентов Indy загружать защищенные веб-страницы, да и не только загружать, а в целом работать с ними (запросы: GET , POST ). Насколько я знаю, у всех версиях Indy эта проблема давно наблюдается. Ну, а сейчас немного теории. SSL - это протокол, с помощью которого можно осущеставлять...
 
SardakEN:

Здравствуйте. Я именно тот, кто не смог получить файл из дискорда.
Пишу на Delphi-7, в связи с необходимой лицензионной чистотой среды разработки.
Раньше мне просто никогда не требовались сетевые возможности при программировании.
А теперь вот понадобилось.
Неужели только переход на современную версию Delphi может меня спасти???

Фрагмент кода:

Ошибка выскакивает на строке с  IdHTTP1.Get

А не проще ли сделать выгрузку и загрузку файла напрямую в эксперте?

 
Vladimir Mikhailov:

А не проще ли сделать выгрузку и загрузку файла напрямую в эксперте?

Проще прочитать начало темы.

 

давным давно бросил пользоваться индейцем, написал WINAPIшные функции и не имею подобных проблем

Вот пример запроса

procedure TForm1.btnConnectClick(Sender: TObject);var url:string;
begin
    url:='https://cdn.discordapp.com/attachments/840668176400121866/840964918764371968/CMDRlist.ini';
    if( not WininetGetString(GET,Url,'',True) )then begin
        GetLog('discord eror : '+url)
    end else begin
        GetLog(url);
    end;
end;

Вот это я получил : 

вот инклюды : (так как сайт не принимает пас файлы переименовал их в тхт)

пользуйтесь

Файлы:
 
Rustamzhan Salidzhanov:

давным давно бросил пользоваться индейцем, написал WINAPIшные функции и не имею подобных проблем

Да, это именно то, что надо.
Приложите пожалуйста архив с этим исходником.
Я гляну что куда прописывать...
Просто даже на вскидку, в uses модулz WinInetGet прописан просто WinInet, а его нет...Ну, и так далее...

 
@Rustamzhan Salidzhanov Рустам, человек говорит, что в приложенных вами файлах есть отсылка к отсутствующим у него исходникам.
 

1) добавляем файлы в проект (Shift+F11)

2) прописываем в uses

3) пишем код

4) закомментируйте все "GetLog()" функции

 
Artyom Trishkin:
@Rustamzhan Salidzhanov Рустам, человек говорит, что в приложенных вами файлах есть отсылка к отсутствующим у него исходникам.

   WinInet - стандартная либка, если просит, то прописать в uses добавлять в проект не надо

  Я вообще то надеялся что он на основе моих функций сделает свое, потому что большая часть из них ему не нужна, можно просто сдернуть функцию  

function WininetGetString(Metod:THttpMethod; var Url:AnsiString; Params:AnsiString=''; RetErrCode:Boolean=false):Boolean;


прямо в проект и добавить только юнит WinInetErrors