首页 > 解决方案 > 如何使用 TIdHTTP Indy 组件下载文件?

问题描述

当我尝试使用 TIdHTTP 组件下载文件时出现此错误:

First chance exception at $76D8AAF2. Exception class EIdOSSLUnderlyingCryptoError with message
'Error connecting with SSL.
error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version'.
Process Project1.exe (3684)

我有随 Embarcadero Rad Studio 10.1 Berlin提供的Indy 版本 10.6.2.5341 。

我正在使用IdSSLIOHandlerSocketOpenSSL并启用了这些选项:

[sslvtlsv1, sslvtlsv1_1, sslvtlsv1_2],但仍然是同样的错误,我的应用程序 exe 目录(libeay32.dll 和 ssleay32.dll)版本 1.0.2u 中也有 ssl dll,从这篇文章中得到它:

我们如何与网站建立联系?获取 SSL 错误 1409442E

我用来下载文件的这段代码:

const UnicodeString URL = "https://www.rarlab.com/rar/winrar-x64-60b1.exe";
    TMemoryStream *ms = new TMemoryStream();

    try
    {
        IdHTTP1->Get(URL, ms);
        ms->SaveToFile("E://winrar.exe");
    }
    __finally
    {
        delete ms;
    }

更新:我升级到 Indy 版本 10.6.2.0 仍然有同样的 SSL 问题。

标签: c++builderindy10

解决方案


推荐阅读