MyChat Scripts: функция mHTTPSendGetMessage, отправить сетевой GET-запрос
Функция для отправки GET запросов по сети. Поддерживается HTTP/HTTPS.
Синтаксис
function mHTTPSendGetMessage(sURL, sHeaders: string; iTimeOut: integer): string;
Параметры и возвращаемые значения
Параметр |
Тип |
Значение |
sURL |
string |
адрес, куда следует отправлять запрос. Поддерживается как http, так и https. Вы можете указать любой порт для подключения, например, http://yourserver.com:8080/myservice/ |
sHeaders |
string |
специальные заголовки (если нужно). Разделяются CRLF, если нужно больше одного. Обычно, если сервис того не требует, пустая строка; |
iTimeOut |
integer |
время в миллисекундах, максимальное время для отправки команды. |
Результат функции
Возвращает ответ на запрос в виде текстовой строки. Если запрос был неудачным, вернётся пустая строка или текст сетевой ошибки.
Пример
Подключение к сервису zadarma.com, чтобы узнать баланс по счёту:
const
sParam = '';
sMethod = '/v1/info/balance/';
sKey = '1ba738452343797198';
sSecret = '7f984576e664';
var
sJSONResult, sSign, status: string;
begin
sSign := EncodeBase64(StrToHex(HMAC_SHA1(sMethod + sParam + StrToHex(MD5(sParam)), sSecret)));
sJSONResult := mHTTPSendGetMessage('https://api.zadarma.com' + sMethod, 'Authorization:' + sKey + ':' + sSign, 1000);
mLogScript(sJSONResult, 'sJSONResult');
JSONGetString(sJSONResult, 'status', status);
mLogScript(status, 'status');
end.
Результат работы скрипта
[16:33:03] (Log "mHTTPSendGetMessage"): [sJSONResult] {"status":"success","balance":10.2637,"currency":"USD"}
[16:33:03] (Log "mHTTPSendGetMessage"): [status] success
[16:33:03] (Run "mHTTPSendGetMessage"): Время выполнения скрипта: 565 мс
[16:33:03] (Run "mHTTPSendGetMessage"): Скрипт выполнен успешно.