我正在处理从https://www.alphavantage.co下载的财务数据。我正在尝试使下载工作在C ++ Builder XE4 Pro中
要访问数据,您需要在此处https://www.alphavantage.co/support/#api-key
免费获得ApiKey以下请求可使用网络浏览器工作。它会保存一个.csv文件。
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=KEYHERE&datatype=csv
在C ++ BuilderXE4中,我正在使用VCL 32位平台和三个Indy组件版本10.6.0.497。
IdHTTP
IdSSLIOHandlerSocketOpenSSL
IdCookieManager
void __fastcall TForm1::Button1Click(TObject *Sender)
{
UnicodeString f;
IdHTTP1->IOHandler = IdSSLIOHandlerSocketOpenSSL1;
IdHTTP1->CookieManager = IdCookieManager1;
TMemoryStream *s = new TMemoryStream;
s->Position = 0;
f = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=MSFT&apikey=KEYHERE&datatype=csv";
IdHTTP1->Get(f.c_str(), s);
Memo1->Lines->LoadFromStream(s);
}
运行此代码时,出现以下错误。
使用SSL连接时出错 错误:14094438:SSL例程:: SSL3_READ_BYTES:tlsv1警报内部错误
我认为此错误表示服务器拒绝了我的请求。我的问题是:是否可以使用Indy组件(或任何其他组件)发出此请求,还是必须使用libcurl之类的库编写一些自定义代码?