首页 > 解决方案 > Delphi Indy SSL 连接:由对等方重置连接

问题描述

我知道这个问题被讨论了很多次。我用 Indy 和 http/https 做了很多项目。

在实际项目中,第二方给了我使用 ssl 保护的 api 端点。

我想我可以使用演示凭据发布它。

https://portal.myraindancer.com/api/v1/crops?client=150002&username=demo&password=demo

2小时后我不得不放弃,我怀疑问题出在api方面。

我总是例外

#10054: Connection reset by peer.

你能帮我展示获取数据的正确方法吗?

我使用带有 URL 的浏览器,可以毫无问题地获取数据。

代码片段(请注意我使用了所有可能的 ssl 方法):

procedure TForm2.Button1Click(Sender: TObject);
var
  sHttpSocket: TIdHTTP;
  sshSocketHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  sHttpSocket := TIdHTTP.Create;
  try
    sshSocketHandler := TIdSSLIOHandlerSocketOpenSSL.Create(sHttpSocket);
    sshSocketHandler.SSLOptions.Method := sslvSSLv23;
    sHttpSocket.IOHandler := sshSocketHandler;
    sHttpSocket.Get('https://portal.myraindancer.com/api/v1/crops?client=150002&username=demo&password=demo');
  finally
    sHttpSocket.Free;
  end;
end;

更新:Delphi XE7,Win32 项目,Indy 10.6.2.0

更新 2:我将 Indy 更新到最新版本后出现问题。但是我忘记在项目选项中更正库路径。解决了。我认为最好关闭帖子。

标签: delphisslindy

解决方案


推荐阅读