Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Простой HTTP GET запрос в Delphi без использования Indy

Delphi , Интернет и Сети , Сеть

Если вам необходимо выполнить HTTP GET запрос в вашем приложении на Delphi, но вы не хотите добавлять сложный код, например, используя Indy, существует несколько альтернативных способов. В данной статье мы рассмотрим один из таких методов, который позволяет выполнить GET запрос к веб-сервису без добавления компонентов Indy.

Использование WinINet API

Один из простых способов выполнения HTTP GET запроса в Delphi - это использование WinINet API. Этот подход позволяет использовать те же настройки подключения и прокси, что и Internet Explorer. Вот пример функции, которая выполняет GET запрос и возвращает содержимое ответа:

uses WinInet;

function GetUrlContent(const Url: string): UTF8String;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1023] of byte;
  BytesRead: dWord;
  StrBuffer: UTF8String;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 2009', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  if Assigned(NetHandle) then
    try
      UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
      if Assigned(UrlHandle) then
        try
          repeat
            InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
            SetLength(StrBuffer, BytesRead + 1);
            StrBuffer[BytesRead] := #0;
            Result := Result + UTF8Encode(StrBuffer);
          until BytesRead = 0;
        finally
          InternetCloseHandle(UrlHandle);
        end
      else
        raise Exception.CreateFmt('Cannot open URL %s', [Url]);
    finally
      InternetCloseHandle(NetHandle);
    end
  else
    raise Exception.Create('Unable to initialize Wininet');
end;

Обратите внимание, что данный код предполагает, что ответ сервера закодирован в ASCII или UTF-8. Также стоит учесть, что WinINet API может быть не лучшим выбором для использования в службах и может иметь проблемы с совместимостью в зависимости от версии Internet Explorer.

Заключение

Использование WinINet API предоставляет простой и легковесный способ выполнения HTTP GET запросов в Delphi без необходимости добавления дополнительных компонентов Indy. Это может быть полезным в случаях, когда требуется минимальное влияние на размер исполняемого файла и когда не требуется сложная функциональность, предоставляемая Indy.

Создано по материалам из источника по ссылке.

Простой HTTP GET запрос в Delphi с использованием WinINet API без использования Indy.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Сеть ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 08:51:03/0.0032107830047607/0