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

Отправка POST-запроса с JSON-данными в Delphi: имитация curl

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

При работе с веб-сервисами часто необходимо отправлять POST-запросы с данными в формате JSON. В этом материале мы рассмотрим, как имитировать команду curl для отправки POST-запроса с JSON-данными в Delphi.

Решение проблемы

Подход 1: Использование встроенного компонента REST.Client

Одним из решений является использование встроенного в Delphi компонента REST.Client. Этот компонент позволяет легко отправлять HTTP-запросы различных типов, в том числе и POST-запросы с JSON-данными.

Ниже приведен пример кода, демонстрирующий отправку POST-запроса с JSON-данными при помощи REST.Client:

uses
  REST.Client, REST.Types;

function SendPostRequest: string;
begin
  var client := TRESTClient.Create('https://api.encurtador.dev');
  try
    var request := TRESTRequest.Create(client);
    request.Method := rmPOST;
    request.Resource := 'encurtamentos';
    request.AddBody('{ "url": "https://google.com" }', TRESTContentType.ctAPPLICATION_JSON);
    request.Execute;
    Result := request.Response.Content;
  finally
    client.Free;
  end;
end;

В данном примере мы создаем экземпляр TRESTClient и устанавливаем базовый URL для запроса. Затем создаем экземпляр TRESTRequest, устанавливаем метод запроса (rmPOST), ресурс ('encurtamentos') и тело запроса в формате JSON. После выполнения запроса мы получаем содержимое ответа и возвращаем его в виде строки.

Подход 2: Использование Indy

Другой подход заключается в использовании компонента Indy, который также встроен в Delphi. Indy предоставляет широкие возможности для работы с сетью и позволяет отправлять HTTP-запросы.

Ниже приведен пример кода, демонстрирующий отправку POST-запроса с JSON-данными при помощи Indy:

uses
  ..., Classes, SysUtils, IdHTTP;

var
  Http: TIdHTTP;
  PostData: TStringStream;
  Resp: string;
begin
  Http := TIdHTTP.Create;
  try
    PostData := TStringStream.Create('{ "url": "https://google.com" }', TEncoding.UTF8);
    try
      Http.Request.ContentType := 'application/json';
      Resp := Http.Post('https://api.encurtador.dev/encurtamentos', PostData);
    finally
      PostData.Free;
    end;
  finally
    Http.Free;
  end;
end;

В данном примере мы создаем экземпляр TIdHTTP и устанавливаем данные для POST-запроса в виде строкового потока TStringStream. Затем устанавливаем заголовок Content-Type в значение application/json и отправляем POST-запрос. После получения ответа мы освобождаем ресурсы.

Заключение

В данной статье мы рассмотрели два подхода для имитации команды curl и отправки POST-запроса с JSON-данными в Delphi: использование встроенного компонента REST.Client и компонента Indy. Оба подхода позволяют легко отправлять HTTP-запросы и обрабатывать ответы от веб-сервисов. Выбор подхода зависит от конкретных задач и предпочтений разработчика.

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

Материал демонстрирует, как имитировать команду `curl` для отправки POST-запроса с JSON-данными в Delphi, рассматривая два подхода: использование встроенного компонента `REST.Client` и компонента Indy.


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

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




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


:: Главная :: URL ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-15 16:04:01/0.0033740997314453/0