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

Настройка SSL-соединения в Delphi для работы с API REDCap

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

В данной статье мы рассмотрим, как настроить SSL-соединение в среде разработки Delphi для выполнения HTTP-запросов к серверу REDCap через его API. REDCap – это веб-приложение для сбора и управления медицинскими исследованиями, которое предоставляет API для взаимодействия с данными.

Проблема подключения

Разработчик столкнулся с необходимостью подключения к серверу REDCap, используя версию Delphi XE7. Несмотря на успешное подключение к тестовому серверу с использованием утилит Curl и PostMan, в Delphi возникли трудности с настройкой SSL-соединения.

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

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

Шаги решения:

  1. Создайте экземпляр TIdHTTP и TIdSSLIOHandlerSocketOpenSSL.
  2. Настройте параметры SSL-соединения.
  3. Добавьте параметры запроса в список TStringList.
  4. Выполните POST-запрос к серверу REDCap.

Пример кода на Object Pascal (Delphi):

procedure TForm1.idHTTP2BtnClick(Sender: TObject);
var
  params, idHTTP, idSSL, status, response: TStringList;
begin
  params := TStringList.Create;
  try
    idHTTP := TIdHTTP.Create(nil);
    try
      idSSL := TIdSSLIOHandlerSocketOpenSSL.Create(idHTTP);
      idSSL.SSLOptions.Mode := sslmClient;
      idSSL.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
      idSSL.SSLOptions.VerifyDepth := 0;
      idSSL.OnVerifyPeer := IdSSLIOHandlerSocketOpenSSL1VerifyPeer;
      idHTTP.IOHandler := idSSL;

      try
        params.Add('token=9A81268476645C4E5F03428B8AC3AA7B');
        params.Add('content=record');
        params.Add('action=export');
        params.Add('format=csv');
        params.Add('rawOrLabel=label');

        idHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
        idHTTP.Request.Charset := 'utf-8';
        idHTTP.HTTPOptions := [hoKeepOrigProtocol, hoForceEncodeParams];

        response := idHTTP.Post('https://bbmc.ouhsc.edu/redcap/api/', params);
      finally
        Memo1.Lines.Add(' ');
        Memo1.Lines.Add(idHTTP.ResponseText);
        Memo1.Lines.Add(' ');
        status := idHTTP.ResponseCode;
        Memo1.Lines.Add('code: ' + IntToStr(status));
      end;
    finally
      idHTTP.Free;
    end;
  finally
    params.Free;
  end;
end;

Важные замечания:

  • Убедитесь, что у вас есть необходимые библиотеки OpenSSL (libeay32.dll и ssleay32.dll), которые должны быть доступны для Indy.
  • Проверьте версию используемых библиотек OpenSSL, чтобы они соответствовали последним требованиям безопасности.

Альтернативные подходы

Также были рассмотрены альтернативные подходы с использованием System.Net.HttpClient и фреймворка mORMot, которые также показали успешные результаты в версиях Delphi начиная с 11.

Заключение

В данной статье мы рассмотрели, как настроить SSL-соединение в Delphi для выполнения HTTP-запросов к серверу REDCap. Правильная настройка параметров запроса и использование актуальных библиотек OpenSSL являются ключевыми моментами для успешного решения задачи.

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

Настройка SSL-соединения в среде разработки Delphi для безопасного выполнения HTTP-запросов к серверу REDCap через его API.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 11:53:03/0.0053439140319824/1