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

Использование TFPHttpClient для получения курса валют в Delphi с помощью API BCV

Delphi , Синтаксис , API реализация

 

В этой статье мы рассмотрим, как получить курс валют в приложении Delphi, используя API BCV (Banco Central de Venezuela) и компонент TFPHttpClient.

Проблема

Пользователь столкнулся с трудностями при попытке получить данные о курсе валют в формате JSON с веб-сервиса BCV. Основные проблемы:

  1. Неправильный формат запроса к API
  2. Ошибки при обработке JSON-ответа
  3. Необходимость ежедневного обновления данных

Решение

Для решения этой задачи мы будем использовать следующие компоненты:

  • TFPHttpClient для HTTP-запросов
  • JSON-парсер для обработки ответа

Пример кода

uses
  fphttpclient, opensslsockets, fpjson, jsonparser;

procedure TForm1.Button1Click(Sender: TObject);
var
  hc: TFPHttpClient;
  url: String;
  jsonResponse: String;
  jsonData: TJsonData;
  jsonObject: TJsonObject;
begin
  url := 'https://bcv.ingeint.com/api/bcv/rate';
  hc := TFPHttpClient.Create(nil);
  try
    try
      jsonResponse := hc.Get(url);

      jsonData := GetJson(jsonResponse);
      if jsonData <> nil then
      begin
        try
          jsonObject := TJsonObject(jsonData);
          if (jsonObject.Find('rate') <> nil) and (jsonObject.Find('date') <> nil) then
          begin
            // Обновляем поля в интерфейсе
            lblRate.Caption := FloatToStr(jsonObject.Find('rate').AsFloat);
            lblDate.Caption := jsonObject.Find('date').AsString;

            // Можно сохранить в базу данных
            SaveToDatabase(jsonObject.Find('rate').AsFloat, jsonObject.Find('date').AsString);
          end
          else
            ShowMessage('Неверный формат JSON: отсутствуют необходимые поля');
        finally
          jsonData.Free;
        end;
      end;
    except
      on E: Exception do
        ShowMessage('Ошибка при получении данных: ' + E.Message);
    end;
  finally
    hc.Free;
  end;
end;

Альтернативное решение

Если у вас возникают проблемы с TFPHttpClient, можно использовать другой HTTP-клиент, например, Indy (TIdHTTP):

uses
  IdHTTP, IdSSLOpenSSL, System.JSON;

procedure TForm1.Button2Click(Sender: TObject);
var
  http: TIdHTTP;
  sslHandler: TIdSSLIOHandlerSocketOpenSSL;
  jsonString: string;
  jsonObj: TJSONObject;
begin
  http := TIdHTTP.Create(nil);
  sslHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    http.IOHandler := sslHandler;
    http.Request.Accept := 'application/json';
    http.Request.ContentType := 'application/json';

    try
      jsonString := http.Get('https://bcv.ingeint.com/api/bcv/rate');
      jsonObj := TJSONObject.ParseJSONValue(jsonString) as TJSONObject;
      try
        if Assigned(jsonObj) then
        begin
          lblRate.Caption := jsonObj.GetValue('rate').Value;
          lblDate.Caption := jsonObj.GetValue('date').Value;
        end;
      finally
        jsonObj.Free;
      end;
    except
      on E: Exception do
        ShowMessage('Ошибка: ' + E.Message);
    end;
  finally
    sslHandler.Free;
    http.Free;
  end;
end;

Рекомендации

  1. Обработка ошибок: Всегда обрабатывайте возможные ошибки при работе с сетью и парсингом JSON.
  2. Обновление данных: Для ежедневного обновления можно использовать таймер или планировщик задач.
  3. Кеширование: Сохраняйте полученные данные локально на случай недоступности сервера.
  4. Проверка данных: Убедитесь, что полученные данные соответствуют ожидаемому формату.

Заключение

Использование TFPHttpClient в сочетании с JSON-парсером предоставляет простой и эффективный способ получения курса валют из веб-сервиса BCV. Представленные примеры кода можно адаптировать для работы с другими аналогичными API, что делает этот подход универсальным решением для финансовых приложений.

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

Использование TFPHttpClient в Delphi для получения и обработки курса валют через API BCV с примерами кода и альтернативными решениями.


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

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




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


:: Главная :: API реализация ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-06-24 01:46:55/0.0055921077728271/0