在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.