HTTP_GET - Функция для выполнения простого web-запроса

Готовые скрипты, модули расширений, динамические библиотеки и вспомогательные утилиты.
Аватара пользователя
Владимир
Администратор
Сообщения: 605
Зарегистрирован: 10 фев 2018, 18:27
Откуда: Белгород
Контактная информация:

HTTP_GET - Функция для выполнения простого web-запроса

Сообщение Владимир » 09 авг 2019, 19:02

Функция: "HTTP_GET". Функция для выполнения HTTP-запроса методом GET (все параметры в URL).
Группа: "Интернет"

Может пригодится во многих случаях, где веб-сервисы отвечают на запрос простым текстом (plain). Коллекция таких сервисов с примерами использования будет пополняться ниже.

Примеры:
1. Сократить длинную ссылку с помощью сервиса bitly.suПоказать

Код: Выделить всё

setfield('Результат',
HTTP_GET(
text('https://bitly.su/api/?
api=baa733ebb140b5e38f825e0407e64f4b7572f203
&url=[URL]
&format=text'))
)   
Результат: https://bitly.su/xhzd

Примечание: API ключ регистрируем свой. Это бесплатно.
2. Узнать свой IP через тестовый скрипт на base.mydataxpress.ruПоказать

Код: Выделить всё

setfield('Результат',
   HTTP_GET('https://base.mydataxpress.ru/myip/')
)   
Результат: Ваш внешний IP адрес интернет
3. Дата последней версии DataExpressПоказать

Код: Выделить всё

setfield('Результат',
   HTTP_GET('https://mydataexpress.ru/latest_version.php')
)   
Результат: ДД.ММ.ГГГГ
...


Примечание:
Запрос выполняется в синхронном режиме и при задержках в ответах от запрашиваемых сервисов или с медленным интернетом могут происходит подвисания интерфейса программы.

Код расширенияПоказать

Код: Выделить всё

{@module
  Author=Develop-Soft [ https://forum.develop-soft.ru ]
  Version=1.0
  Description=HTTP_GET - Функция для выполнения простого HTTP-запроса
@}

{@function
  OrigName=HTTP_GET
  Name=HTTP_GET
  Args=v
  Result=s
  Group=Интернет
  Description=Функция для выполнения простого HTTP-запроса методом GET
  (все параметры в URL)<br><br>
  <code>HTTP_GET([url]): результат - ответ на запрос (текст)</code>
@}

function EncodeURI(s:string):string;
var SC:variant;
begin
  try
  SC := CreateOleObject('MSScriptControl.ScriptControl');
  SC.Language := 'JScript';
  SC.Reset;
  SC.AddCode('function EncUri(s){return encodeURI(s);};');
  result := SC.Run('EncUri',s);
  except
  try SC:=0; except end;
  debug('Ошибка HTTP_GET -> EncodeURI: '
  +ExceptionParam);
  finally
  SC:=Unassigned;
  end;
end;

function HTTP_GET(URL:Variant):string;
var HC:THttpClient;
begin
  try
    if VarToStr(URL)='' then exit;
    HC:=THttpClient.Create;
    HC.Send('GET',EncodeURI(VarToStr(URL)));
    result := HC.Content;
  except
    result:='';
    debug('Ошибка HTTP_GET:' +
    ExceptionParam);
  finally
    HC.Free;
    HC:=nil;
  end;
end;

Скачать:
http_get.epas
(1.29 КБ) 73 скачивания

Демо


Поддержка проекта



Быстрый ответ

Смайлики
:-) ;-) :-( :-[ :-D :-P O_O :bye: :good: :help: :lol: :ok: :pardon: :sorry: :yes:
Ещё смайлики…
Загрузить изображение