c++builder - 如何使用 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 问题。
解决方案
推荐阅读
- spring-boot - Spring Boot 批处理作业 - 无法从命令行运行
- python - 我应该使用哪种 Python 预测方法
- c# - 并行图像大小调整
- java - Apache Camel:发布请求正文的问题
- sql-server - 如何在powershell中处理$内部参数
- javascript - ng-repeat 渲染的 Chart.js 画布不显示图表
- ruby-on-rails - 更新单个子记录时触发更新到父记录,子记录可以一次更新,如何管理效率
- postgresql - 如何修复编码错误以使用 psql 上传 5GB 文本文件?(错误:编码“UTF8”的字节序列无效:0x92)
- arrays - 如何在 Jenkins Groovy Pipeline 中创建和循环字符串的 ArrayList
- node.js - 获取 express/node 以循环发送到 NOAA API 的请求