Интеграция в другие системы — различия между версиями
Строка 28: | Строка 28: | ||
Обратите внимание, что для корректной работы SSL-сертификатов необходимо иметь точное локально время. При значительном отклонении локальных часов, https-запросы могут не работать. Рекомендуем использовать синхронизацию времени по NTP-серверу. | Обратите внимание, что для корректной работы SSL-сертификатов необходимо иметь точное локально время. При значительном отклонении локальных часов, https-запросы могут не работать. Рекомендуем использовать синхронизацию времени по NTP-серверу. | ||
+ | |||
+ | |||
+ | Пример запроса числа по GET-запросу с URL http://demo.example.com/read-data?param=32 и записи его в регистр с id=4356: | ||
+ | |||
+ | <syntaxhighlight lang="lua"> | ||
+ | function main (userId) | ||
+ | c = cURL.easy_init() | ||
+ | c:setopt_url("http://demo.example.com/read-data?param=32") | ||
+ | local res = ""; | ||
+ | c:perform({ | ||
+ | writefunction = function(str) | ||
+ | res = res .. str; | ||
+ | end}) | ||
+ | c:close() | ||
+ | WriteReg(4356, res); | ||
+ | end | ||
+ | </syntaxhighlight> |
Версия 11:50, 11 апреля 2017
WebHMI позволяет взаимодействовать с другими системами посредством выполнения HTTP-запросов. Для этого в WebHMI есть библиотека Lua-cURLv3. С ее помощью можно легко и просто отправлять данные в сторонние системы а также запрашивать необходимые данные из этих систем.
Данная функция доступна начиная с версии 2.6.4520.
Пример программы, выполняющей HTTPS-запрос для отправки данных виде файла на URL https://demo.com/upload:
function main (userId)
INFO("Doing CURL");
c = cURL.easy_init()
c:setopt_url("https://demo.com/upload")
postdata = {
name = {
file="dummy.html",
data="<html><bold>bold</bold></html>",
type="text/html"
}
}
c:post(postdata)
c:perform()
c:close()
INFO("CURL done");
end
Обратите внимание, что для корректной работы SSL-сертификатов необходимо иметь точное локально время. При значительном отклонении локальных часов, https-запросы могут не работать. Рекомендуем использовать синхронизацию времени по NTP-серверу.
Пример запроса числа по GET-запросу с URL http://demo.example.com/read-data?param=32 и записи его в регистр с id=4356:
function main (userId)
c = cURL.easy_init()
c:setopt_url("http://demo.example.com/read-data?param=32")
local res = "";
c:perform({
writefunction = function(str)
res = res .. str;
end})
c:close()
WriteReg(4356, res);
end