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), в результате пользователь получил сообщение прямо в чат: