MyChat Scripts Engine: mHTTPSendPostMessage

MyChat Scripts: функция mHTTPSendPostMessage, отправить сетевой POST-запрос

Функция для отправки POST запросов по сети. Поддерживается HTTP/HTTPS.

 

Синтаксис

function mHTTPSendPostMessage(sURL, sBody, sHeaders: string; iTimeOut: integer): string;

 

Параметры и возвращаемые значения

Параметр

Тип

Значение

sURL

string

адрес, куда следует отправлять запрос. Поддерживается как http, так и https. Вы можете указать любой порт для подключения, например, http://yourserver.com:8080/myservice/

sBody

string

тело запроса. Текстовая строка;

sHeaders

string

специальные заголовки (если нужно). Разделяются CRLF, если нужно больше одного. Обычно, если сервис того не требует, пустая строка;

iTimeOut

integer

время в миллисекундах, максимальное время для отправки команды.

 

Результат функции

Возвращает ответ на запрос в виде текстовой строки. Если запрос был неудачным, вернётся пустая строка или текст сетевой ошибки.

 

Пример

var
  sResult, sJSON: string;
begin
  sJSON := '{}';
  
  JSONSetString(sJSON, 'cmd', '0002');
  JSONSetInteger(sJSON, 'UserTo', 6);
  JSONSetInteger(sJSON, 'UserFrom', 3);
  JSONSetString(sJSON, 'Msg', 'Hit the road Jack' + CRLF + 
                              'and don''t you come back' + CRLF +
                              'no more, no more, no more, no more.');
  JSONSetString(sJSON, 'APIStype', 'msl');
  JSONSetString(sJSON, 'ServerKey', 'iddqd');
  
  mLogScript(sJSON, 'request');
  
  sResult := mHTTPSendPostMessage('https://mychatserver.mycompany.com/API/', sJSON, 'integrationapi: mychat', 2000);
  
  mLogScript(sResult, 'response');
end.

Результат работы скрипта

[16:41:35] (Log "PostRequestExample"): [request] {"cmd":"0002","Msg":"Hit the road Jack\r\nand don't you come back\r\nno more, no more, no more, no more.","ServerKey":"iddqd","UserFrom":3,"APIStype":"msl","UserTo":6}

[16:41:35] (Log "PostRequestExample"): [response] {"Cmd":2,"UINTo":6,"hash":"qQC3Qn4SMAdgQx5","State":0}

[16:41:35] (Run "PostRequestExample"): Время выполнения скрипта: 133 мс

[16:41:35] (Run "PostRequestExample"): Скрипт выполнен успешно.
 

Для теста был выбран сервер MyChat и его IntegrationAPI (REST), в результате пользователь получил сообщение прямо в чат:

 

Отправка приватного сообщения в чат через POST запрос из скриптового движка MyChat Server (пример)

 

Ещё посмотреть

Описание команд IntegrationAPI

CRLF

JSONSetInteger

JSONSetString

mLogScript