Ver la Versión Completa : Obtener json de una URL
Soa Pelaez
25-02-2020, 04:17:20
Buenas delphiteros.
Necesito realizar una aplicación que me obtenga un json de una url pero no logro hacerlo, use el componente de Indy IdHTTP pero al ingresar la URL y ejecutar el aplicativo me sale un error de Could not load library SSL, hay alguna otra forma de hacerlo o alguien que tenga un ejemplo que le funcione para guiarme, a parte de leer de la URL el json, luego debo enviar un json modificado desde el aplicativo a otra URL. Estoy trabajando con XE8 y la versión de indy 10
Espero puedan ayudarme.
Gracias.
ElKurgan
25-02-2020, 07:26:24
Sobre el problema de que no puede cargar el Indy SSL, a lo mejor te puede ayudar este hilo (https://www.clubdelphi.com/foros/showthread.php?t=70314), donde se trató el mismo problema
Un saludo
Neftali [Germán.Estévez]
25-02-2020, 08:58:25
Necesito realizar una aplicación que me obtenga un json de una url pero no logro hacerlo, use el componente de Indy IdHTTP pero al ingresar la URL y ejecutar el aplicativo me sale un error de Could not load library SSL, ...
En mi blog tienes varios ejemplos de descarega de ficheros JSON utilizando Delphi + Indy + SSL.
Revísalos y échale un vistazo al código. Por ejemplo estas 2.
https://neftali.clubdelphi.com/obtener-informacin-de-una-cancin/
https://neftali.clubdelphi.com/tidhttp-descargar-imagenes-de-una-web/
De todas formas, para las nuevas versiones de Windows es mejor utilizar el componente THTTPClient para descargas, porque encapsula el acceso a SSL y simplifica el trema de la descarga.
Soa Pelaez
26-02-2020, 02:39:36
;535903']En mi blog tienes varios ejemplos de descarega de ficheros JSON utilizando Delphi + Indy + SSL.
Revísalos y échale un vistazo al código. Por ejemplo estas 2.
https://neftali.clubdelphi.com/obtener-informacin-de-una-cancin/
https://neftali.clubdelphi.com/tidhttp-descargar-imagenes-de-una-web/
De todas formas, para las nuevas versiones de Windows es mejor utilizar el componente THTTPClient para descargas, porque encapsula el acceso a SSL y simplifica el trema de la descarga.
Muchas gracias, probaré lo que me adjuntaste y tratare de hacerlo con lo que me dices al final THTTPClient .
Muchas gracias, probaré lo que me adjuntaste y tratare de hacerlo con lo que me dices al final THTTPClient .
function GetJSON(test: string): string;
var
lHTTP: TIdHTTP;
lParamList: TStringList;
begin
lParamList := TStringList.Create;
lParamList.Add('dummy='+test);
lHTTP := TIdHTTP.Create;
try
Result := lHTTP.Post('http://........./root/demo/GetJSON.php' , lParamList);
finally
lHTTP.Free;
lParamList.Free;
end;
end;
Neftali [Germán.Estévez]
26-02-2020, 20:50:58
El problema es que a ese código [look] le falta la parte de acceder a una dirección HTTPS.
Para hacerlo (a diferencia d una HTTP) tienes que usar un componente TIdSSLIOHandlerSocket que se "engancha" con el TidHttp y que es el que se encarga de cargar las DLL's para poder usar SSL.
;535951']El problema es que a ese código [look] le falta la parte de acceder a una dirección HTTPS.
Para hacerlo (a diferencia d una HTTP) tienes que usar un componente TIdSSLIOHandlerSocket que se "engancha" con el TidHttp y que es el que se encarga de cargar las DLL's para poder usar SSL.
hola, y si utilizamos mejor un NetHTTPClient ???
function GetJSON(test: string): string;
var
NetHTTP: TNetHTTPClient;
lParamList: TStringList;
begin
lParamList := TStringList.Create;
lParamList.Add('dummy='+test);
NetHTTP := TNetHTTPClient.Create(nil);
try
Result := NetHTTP.Post('https://........./root/demo/GetJSON.php', lParamList).ContentAsString;
finally
NetHTTP.Free;
lParamList.Free;
end;
end;
Neftali [Germán.Estévez]
26-02-2020, 23:17:55
hola, y si utilizamos mejor un NetHTTPClient ???
Mucho mejor.
A ese me refería cuando dije THHPClient, que deja al sistema la gestión de HTTP/HTTPS.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.