作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Delphi 中执行 HTTPS POST 请求的最简单方法是什么?我在发出 HTTP POST 请求时没有遇到问题,但如何使用 SSL 来做到这一点?我用谷歌搜索了一下,没有找到任何可以很好地解释这一点的内容。
这是我尝试过的代码:
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 - 如何在Delphi中发出HTTPS POST请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4223839/
我是一名优秀的程序员,十分优秀!