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