只需将以下URL加载到Web浏览器中,我就可以将一份加密的湿度数据推送到我的Ubidots云数据库中:
这样做时,我会在浏览器窗口中获得成功响应
{"humidity": [{"status_code": 201}]}
数据显示在我的Ubidots数据表中。
现在,我想从没有可见浏览器的FMX应用程序(Win32上的C ++)执行此操作,并且我想检查是否获得了不错的“ 201”响应代码。我看着this link并整理了以下代码行:
Memo1->Text = IdHTTP1->Get("https://industrial.ubidots.com/api/v1.6/devices/MYDEVICENAME/?token=MYTOKENHERE&_method=post&humidity=6.9");
运行它时,出现“无法加载SSL库”错误消息。如何告诉TIdHTTP
使用SSL,以便它可以处理HTTPS?有没有更好,更清洁的方法?
答案 0 :(得分:1)
我收到“无法加载SSL库”错误消息。
Indy默认使用OpenSSL。您可以在WhichFailedToLoad()
中使用Indy的IdSSLOpenSSLHeaders.hpp
函数来找出为什么它无法加载OpenSSL库的原因。
如何告诉IdHTTP1使用SSL
通过请求HTTP S 网址,您已经是。 Indy只是在加载SSL库时遇到了麻烦,要么是因为找不到库二进制文件,要么是二进制文件的版本错误。您可以从https://indy.fulgan.com/SSL/获取与Indy兼容的OpenSSL二进制文件。通常,您应该将它们放置在与应用程序相同的文件夹中,但是如果要将它们存储在其他位置,则需要在调用任何SSL / TLS操作之前调用Indy的IdOpenSSLSetLibPath()
函数。