Delphi Indy HTTPS下载HTTP错误403禁止

Delphi Indy HTTPS下载HTTP错误403禁止,delphi,http,openssl,delphi-xe2,indy,Delphi,Http,Openssl,Delphi Xe2,Indy,我正试图下载一个带有idHTTP组件的文件,但它不起作用。 我将两个OpenSSL DDL(libeay32和ssleay32.dll)都包含在我的项目文件夹中,但它不起作用 我将idHTTP组件与TidSSLIOHandlerSocketOpenSSL IOHandler和SSL版本SSLv3一起使用 通过这段代码,我得到了一个带有消息“HTTP/1.1403禁止”的EIdHTTPProtocolException 为什么会出现此错误?如何使下载正常工作 procedure TForm_Mai

我正试图下载一个带有idHTTP组件的文件,但它不起作用。 我将两个OpenSSL DDL(libeay32和ssleay32.dll)都包含在我的项目文件夹中,但它不起作用

我将idHTTP组件与TidSSLIOHandlerSocketOpenSSL IOHandler和SSL版本SSLv3一起使用

通过这段代码,我得到了一个带有消息“HTTP/1.1403禁止”的EIdHTTPProtocolException

为什么会出现此错误?如何使下载正常工作

procedure TForm_Main.Button1Click(Sender: TObject);
var
  fs: TFileStream;
begin
  inherited;
  fs := TFileStream.Create('E:\abc.html', fmCreate or fmShareDenyWrite);
  try
    LoadOpenSSLLibrary;
    IdHTTP1.Get('https://www.testcloud.de/index.html', fs);
  finally
    fs.Free;
  end;
end;

IdHTTP1.Request.UserAgent
设置为某个浏览器的用户代理,就可以让它工作了。服务器不喜欢Indy的默认服务器,拒绝了它的请求。完成了任务,谢谢!另外,您不需要手动调用
LoadOpenSSLLibrary()
TIdSSLIOHandlerSocketOpenSSL
将在内部为您执行此操作。