delphi - 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 更新到最新版本后出现问题。但是我忘记在项目选项中更正库路径。解决了。我认为最好关闭帖子。
解决方案
推荐阅读
- swift - 如何使关联值相等的 Swift 枚举
- laravel - Laravel:无法打开流:成功_身份验证错误
- javascript - VS2017中的javascript验证在脚本以外的其他文件夹中
- php - 如何在 PHP 照片上传脚本功能中添加文字或徽标水印?
- itext - Itext 7 .net:填充 PdfChoiceFormField
- html - 第一个焦点上的文本区域行为
- android - Android webView滚动问题
- jquery - 检查链接是否包含完全匹配的文本
- mysql - 在 SQL 中进行排名时,“+”号是什么意思?
- bash - 备份脚本:删除旧文件不起作用