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

前端之家收集整理的这篇文章主要介绍了如何在Delphi中进行HTTPS POST请求?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Delphi中执行HTTPS POST请求的最简单方法是什么?我没有提出HTTP POST请求的问题,但是如何使用SSL?我已经google了,没有找到任何解释这个很好的东西.

这是我试过的代码

  1. procedure TForm1.FormCreate(Sender: TObject);
  2. var
  3. responseXML:TMemoryStream;
  4. responseFromServer:string;
  5. begin
  6. responseXML := TMemoryStream.Create;
  7. IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(self);
  8. with idSSLIOHandlerSocketOpenSSL1 do
  9. begin
  10. SSLOptions.Method := sslvSSLv2;
  11. SSLOptions.Mode := sslmUnassigned;
  12. SSLOptions.VerifyMode := [];
  13. SSLOptions.VerifyDepth := 0;
  14. host := '';
  15. end;
  16.  
  17. IdHTTP1 := TIdHTTP.Create(Self);
  18. with IdHTTP1 do
  19. begin
  20. IOHandler := IdSSLIOHandlerSocketOpenSSL1;
  21. AllowCookies := True;
  22. ProxyParams.BasicAuthentication := False;
  23. ProxyParams.ProxyPort := 0;
  24. Request.ContentLength := -1;
  25. Request.ContentRangeEnd := 0;
  26. Request.ContentRangeStart := 0;
  27. Request.Accept := 'text/html,*/*';
  28. Request.BasicAuthentication := False;
  29. Request.UserAgent := 'Mozilla/3.0 (compatible; Indy Library)';
  30. HTTPOptions := [hoForceEncodeParams];
  31. end;
  32. responsefromserver := IdHTTP1.Post('https://.../','name1=value1&name2=value2&....');
  33. end;

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

  1. 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相关文章