使用Indy10组件从alphavantage.co下载

时间:2018-07-13 02:19:18

标签: c++builder indy10

我正在处理从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之类的库编写一些自定义代码?

0 个答案:

没有答案