Algun ejemplo de codigo de como bajar un archivo .json??
El archivo esta una url de una aplicacion mia, y necesito bajar ese archivo a mi directorio, no se como hacerlo, si alguien tiene idea, ayuda.
Gracias
download a json file from a url ???
Moderator: Rathinagiri
- Ismach
- Posts: 166
- Joined: Wed Nov 28, 2012 5:55 pm
- DBs Used: DBF, mySQL, Mariadb, postgreSQL, Oracle, Db2, Interbase, Firebird, and SQLite
- Location: Buenos Aires - Argentina
Re: download a json file from a url ???
Hola
a ver esto puede funcionar... tenes instalado curl?
Local ccGetJson := "curl -H " + Chr(34) + "Accept: application/json" + Chr(34) + "-X GET https://example.com/api/data -o salida.json"
RUN ( ccGetJson )
Saludos
a ver esto puede funcionar... tenes instalado curl?
Local ccGetJson := "curl -H " + Chr(34) + "Accept: application/json" + Chr(34) + "-X GET https://example.com/api/data -o salida.json"
RUN ( ccGetJson )
Saludos
Re: download a json file from a url ???
Gracias
Lo pude hacer al final, muestro el codigo me anda perfecto:
#include "hbcurl.ch"
#include "fileio.ch"
#define CURLOPT_URL 10002
#define CURLOPT_WRITEFUNCTION 20011
#define CURLOPT_WRITEDATA 10001
********************
FUNCTION Main()
********************
*
LOCAL cUrl := 'https://www.tupagina.com/php/file.json' // Este es el archivo de la web
LOCAL cFilePath := 'file.json' // Este es el archivo que uso en mi directorio de forma local
....
...
DEFINE WINDOW Main AT 0,0 WIDTH 100 ;
HEIGHT 400 ICON 'logo' ;
TITLE pcRazonSocial+' - '+pcVersionIdLong ;
MAIN NOSIZE NOMAXIMIZE
ON KEY ESCAPE ACTION (Main.Release)
....
// Llama a la función para descargar el archivo
urlLoad(cUrl)
...
...
END WINDOW
SETWINDOWCURSOR(Main.Handle,piC_3)
CENTER WINDOW Main
RETURN NIL
**********
*******************
FUNCTION urlLoad( cUrl )
*******************
LOCAL hCurl, nRet
*
IF !EMPTY( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_DOWNLOAD )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_FOLLOWLOCATION )
curl_easy_setopt( hCurl, HB_CURLOPT_FILETIME, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_DL_FILE_SETUP, SubStr( cUrl, RAt( "/", cUrl ) + 1 ) )
curl_easy_setopt( hCurl, HB_CURLOPT_NOPROGRESS, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_FAILONERROR , .T. )
nRet = curl_easy_perform( hCurl )
curl_easy_cleanup( hCurl )
ENDIF
RETURN nRet
**********
los .... es codigo de cada uno, lo importante es que descarga el archivo al directorio donde trabajo, y lo hace bien, uso la libreria: libcurl.dll (sin ella NO FUNCIONA)
Lo pude hacer al final, muestro el codigo me anda perfecto:
#include "hbcurl.ch"
#include "fileio.ch"
#define CURLOPT_URL 10002
#define CURLOPT_WRITEFUNCTION 20011
#define CURLOPT_WRITEDATA 10001
********************
FUNCTION Main()
********************
*
LOCAL cUrl := 'https://www.tupagina.com/php/file.json' // Este es el archivo de la web
LOCAL cFilePath := 'file.json' // Este es el archivo que uso en mi directorio de forma local
....
...
DEFINE WINDOW Main AT 0,0 WIDTH 100 ;
HEIGHT 400 ICON 'logo' ;
TITLE pcRazonSocial+' - '+pcVersionIdLong ;
MAIN NOSIZE NOMAXIMIZE
ON KEY ESCAPE ACTION (Main.Release)
....
// Llama a la función para descargar el archivo
urlLoad(cUrl)
...
...
END WINDOW
SETWINDOWCURSOR(Main.Handle,piC_3)
CENTER WINDOW Main
RETURN NIL
**********
*******************
FUNCTION urlLoad( cUrl )
*******************
LOCAL hCurl, nRet
*
IF !EMPTY( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_DOWNLOAD )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_FOLLOWLOCATION )
curl_easy_setopt( hCurl, HB_CURLOPT_FILETIME, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_DL_FILE_SETUP, SubStr( cUrl, RAt( "/", cUrl ) + 1 ) )
curl_easy_setopt( hCurl, HB_CURLOPT_NOPROGRESS, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .F. )
curl_easy_setopt( hCurl, HB_CURLOPT_FAILONERROR , .T. )
nRet = curl_easy_perform( hCurl )
curl_easy_cleanup( hCurl )
ENDIF
RETURN nRet
**********
los .... es codigo de cada uno, lo importante es que descarga el archivo al directorio donde trabajo, y lo hace bien, uso la libreria: libcurl.dll (sin ella NO FUNCIONA)
- Attachments
-
- libcurl.zip
- (2.18 MiB) Downloaded 48 times