MyChat Scripts: функція mHTTPSendPostMessage, надіслати мережевий POST-запит
Функція для надсилання запитів POST через мережу. Підтримується HTTP/HTTPS.
Синтаксис
function mHTTPSendPostMessage(sURL, sBody, sHeaders: string; iTimeOut: integer): string;
Параметри та значення, що повертаються
|
Параметр |
Тип |
Значение |
|
sURL |
string |
адреса, куди слід надсилати запит. Підтримується як http, і https. Ви можете вказати будь-який порт для підключення, наприклад, https://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), в результаті користувач отримав повідомлення прямо в чат.