Ver Mensaje Individual
  #12  
Antiguo 27-03-2026
andressanchez andressanchez is offline
Miembro
 
Registrado: jul 2005
Ubicación: Sando Domingo, Rep. Dom.
Posts: 119
Reputación: 21
andressanchez Va por buen camino
Hola!

Ya pude instalar Indy 10 y todo marcha bien.

Comparto implementación HTTPS GET.

Código Delphi [-]
unit Unit1;

interface
uses IdHTTP, uLkJSON, SysUtils, Dialogs, IdCTypes,
  IdSSLOpenSSLHeaders, IdBaseComponent, IdComponent, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL;

function ObtenerDatosJSON(const URL: string): TlkJSONobject;

implementation

function ObtenerDatosJSON(const URL: string): TlkJSONobject;
var
  Http: TIdHTTP;
  LHandler: TIdSSLIOHandlerSocketOpenSSL;
  Respuesta: string;
begin
  Result := nil;
  Http := TIdHTTP.Create(nil);
  try
    LHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    try
      Http.IOHandler := LHandler;
      LHandler.SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
      
      // Realizar el HTTP GET
      Respuesta := Http.Get(URL);
      
      // Parsear la respuesta a objeto JSON
      Result := TlkJSON.ParseText(Respuesta) as TlkJSONobject;
    except
      on E: Exception do
        ShowMessage('Error: ' + E.Message);
    end;
  finally
    Http.Free;
    LHandler.Free;
  end;
end;

end.

Aqui su consumo. En Form1 debe ser agregada la libreria uLkJSON y Unit1

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  JsonObj: TlkJSONobject;
  ValorNombre: string;
begin
  JsonObj := ObtenerDatosJSON(FPrincipal.URLPolaris +
  'autenticacion/token?authtoken=' + FPrincipal.AccesTokenPolaris);
  if Assigned(JsonObj) then
  begin
    try
      // Acceder a un campo (ejemplo: {"data": "xyz"})
      ValorNombre := JsonObj.getString('data');
      ShowMessage(ValorNombre);
    finally
      JsonObj.Free; // ¡Importante liberar memoria!
    end;
  end;

end;


El próximo ejercicio que haré será realizar una petición HTTPS POST.

Saludos.-
Responder Con Cita