我有以下任务:使用HTTPS和身份验证下载文件。Indy似乎是最好的选择,但由于某些原因,到目前为止它还没有起作用。我已经做了以下准备:
使用这段代码时,我很快就会收到一个“读取超时”(EIdReadTimeout)异常。在浏览器中测试该URL没有问题。有什么想法是缺失的或者我做错了什么?
- 一个TIdHTTP组件,用于下载
- 一个TIdURI组件用于创建URL
- 一个TIdSSLIOHandlerSocketOpenSSL组件,应该提供安全连接。所需的DLL文件在二进制文件夹中。
URI := TIdURI.Create('https://test.example.com/');
URI.Username := ParamUserName;
URI.Password := ParamPassword;
HTTP := TIdHTTP.Create(nil);
if URI.Protocol = 'https' then
begin
IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IOHandler.SSLOptions.Method := sslvSSLv3;
HTTP.IOHandler := IOHandler;
end;
HTTP.Get(URI.GetFullURI([ofAuthInfo]), FileStream);
使用这段代码时,我很快就会收到一个“读取超时”(EIdReadTimeout)异常。在浏览器中测试该URL没有问题。有什么想法是缺失的或者我做错了什么?