Ver Mensaje Individual
  #11  
Antiguo 02-01-2024
Badillo Badillo is offline
Miembro
 
Registrado: jun 2021
Posts: 33
Reputación: 0
Badillo Va por buen camino
Necesito su ayuda con este ejemplo

Estoy tratando de hacer una llamada a este API, para obtener del un JSON y así validar la información. Ajusté la función según lo que entendí del ejempo que debaten acá, pero cuando hace por conectarse emite el siguiente error:

raised exception class EIdOSSLUnderlyingCryptoError with message 'Error connecting with SSL.
error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure

El código fuente de la función es:

Código Delphi [-]
function TValidateNPIForAPI.IsValidateNPIForAPI(aNumber, aNpiType, aTaxonomy :string): boolean;
var
  xResponse: TStringStream;
  xUrl, xParams: String;
  xJsonObj: TlkJSONbase;
  xCount: Integer;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
    Result := False;
    xUrl :=  'https://npiregistry.cms.hhs.gov/api/?version=2.1';
    xResponse := TStringStream.Create('');
    xJsonObj :=  TlkJSONbase.Create;

    if aNumber <> '' then
      xParams := xParams + '&number='+HttpEncode(aNumber);

    if aNpiType <> '' then
      xParams := xParams + '&enumeration_type='+HttpEncode(aNpiType);

    if aTaxonomy <> '' then
      xParams := xParams + '&taxonomy_description='+HttpEncode(aTaxonomy);

    try
      SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
      Fhttp := TIDHttp.Create(nil);
      Fhttp.IOHandler := SSLHandler;
      Fhttp.Request.Clear();
      Fhttp.Request.Accept := '*/*';
      Fhttp.Request.CustomHeaders.Values['X-MANTISAPI-CODE'] := 'eeXahKo8';
      Fhttp.Get(xUrl + xParams, xResponse);
      TlkJSONbase(xJsonObj) := TlkJSON.ParseText(xResponse.DataString);
      xCount := StrToInt(xJsonObj.Field['result_count'].Value);
      Result := (xCount > 0);
    finally
      xResponse.Free;
      xJsonObj.Free;
      Result := False;
    end;
end;

Como ejemplo en los parámetros pueden utilizar aNumber = '1871147520' y aNpiType = 'NPI-1'.

Gracias por su ayuda.
Responder Con Cita