IdHTTP以确保将数据推送到Ubidots(FMX,WIN32)

时间:2019-04-18 03:40:44

标签: firemonkey c++builder indy idhttp

只需将以下URL加载到Web浏览器中,我就可以将一份加密的湿度数据推送到我的Ubidots云数据库中:

  

https://industrial.ubidots.com/api/v1.6/devices/MYDEVICENAME/?token=MYTOKENHERE&_method=post&humidity=15.9

这样做时,我会在浏览器窗口中获得成功响应

{"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?有没有更好,更清洁的方法?

1 个答案:

答案 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()函数。