如何在Delphi中进行HTTPS POST请求?

在Delphi中执行HTTPS POST请求的最简单方法是什么?我没有提出HTTP POST请求的问题,但是如何使用SSL?我已经google了,没有找到任何解释这个很好的东西.

这是我试过的代码

procedure TForm1.FormCreate(Sender: TObject);
var
  responseXML:TMemoryStream;
  responseFromServer:string;
begin
  responseXML := TMemoryStream.Create;
  IdSSLIOHandlerSocketopenSSL1 := TIdSSLIOHandlerSocketopenSSL.Create(self);
  with idSSLIOHandlerSocketopenSSL1 do
    begin
      SSLOptions.Method := sslvSSLv2;
      SSLOptions.Mode := sslmUnassigned;
      SSLOptions.VerifyMode := [];
      SSLOptions.VerifyDepth := 0;
      host := '';
    end;

  IdHTTP1 := TIdHTTP.Create(Self);
  with IdHTTP1 do
    begin
      IOHandler := IdSSLIOHandlerSocketopenSSL1;
      AllowCookies := True;
      ProxyParams.BasicAuthentication := False;
      ProxyParams.ProxyPort := 0;
      Request.ContentLength := -1;
      Request.ContentRangeEnd := 0;
      Request.ContentRangeStart := 0;
      Request.Accept := 'text/html,*/*';
      Request.BasicAuthentication := False;
      Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)';
      HTTPOptions := [hoForceEncodeParams];
    end;
  responsefromserver := IdHTTP1.Post('https://.../','name1=value1&name2=value2&....');
end;

当我尝试运行它,我得到以下错误

Project myProject.exe raised exception class EFOpenError with message 'Cannot open file "C:\...\Projects\Debug\Win32\name1=value1name2=value2 The system cannot find the file specified'.

我不明白我发送参数,虽然错误听起来像我会发送一个文件.

另外我已经在我的myProject.exe文件夹中包含libeay32.dll和ssleay32.dll.

解决方法

您没有指定您的Delphi版本或indy版本,但是在使用Delphi 2009和HTTPS的捆绑式Indy之前我有一些问题,当我从 indy svn获得最新的源代码时,问题解决了.

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...