Интеграция в другие системы — различия между версиями
(Отметить эту версию для перевода) |
|||
Строка 1: | Строка 1: | ||
<languages/> | <languages/> | ||
<translate> | <translate> | ||
+ | <!--T:1--> | ||
WebHMI позволяет взаимодействовать с другими системами посредством выполнения HTTP-запросов. Для этого в WebHMI есть библиотека [https://github.com/Lua-cURL/Lua-cURLv3 Lua-cURLv3]. С ее помощью можно легко и просто отправлять данные в сторонние системы а также запрашивать необходимые данные из этих систем. | WebHMI позволяет взаимодействовать с другими системами посредством выполнения HTTP-запросов. Для этого в WebHMI есть библиотека [https://github.com/Lua-cURL/Lua-cURLv3 Lua-cURLv3]. С ее помощью можно легко и просто отправлять данные в сторонние системы а также запрашивать необходимые данные из этих систем. | ||
+ | <!--T:2--> | ||
Данная функция доступна начиная с версии 2.6.4520. | Данная функция доступна начиная с версии 2.6.4520. | ||
+ | <!--T:3--> | ||
Пример программы, выполняющей HTTPS-запрос для отправки данных виде файла на URL https://demo.com/upload: | Пример программы, выполняющей HTTPS-запрос для отправки данных виде файла на URL https://demo.com/upload: | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
Строка 11: | Строка 14: | ||
INFO("Doing CURL"); | INFO("Doing CURL"); | ||
− | c = cURL.easy_init() | + | <!--T:4--> |
+ | c = cURL.easy_init() | ||
c:setopt_url("https://demo.com/upload") | c:setopt_url("https://demo.com/upload") | ||
Строка 25: | Строка 29: | ||
c:close() | c:close() | ||
− | INFO("CURL done"); | + | <!--T:5--> |
+ | INFO("CURL done"); | ||
end | end | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | <!--T:6--> | ||
Обратите внимание, что для корректной работы SSL-сертификатов необходимо иметь точное локально время. При значительном отклонении локальных часов, https-запросы могут не работать. Рекомендуем использовать синхронизацию времени по NTP-серверу. | Обратите внимание, что для корректной работы SSL-сертификатов необходимо иметь точное локально время. При значительном отклонении локальных часов, https-запросы могут не работать. Рекомендуем использовать синхронизацию времени по NTP-серверу. | ||
+ | <!--T:7--> | ||
Пример запроса числа по GET-запросу с URL http://demo.example.com/read-data?param=32 и записи его в регистр с id=4356: | Пример запроса числа по GET-запросу с URL http://demo.example.com/read-data?param=32 и записи его в регистр с id=4356: | ||
+ | <!--T:8--> | ||
<syntaxhighlight lang="lua"> | <syntaxhighlight lang="lua"> | ||
function main (userId) | function main (userId) |
Версия 11:51, 21 ноября 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