Интеграция в другие системы — различия между версиями

Материал из WebHMI Wiki
Перейти к: навигация, поиск
(Отметить эту версию для перевода)
Строка 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

Другие языки:
English • ‎русский

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