Descarga desde https SOLUCIONADO

Descarga desde https SOLUCIONADO

Postby FranciscoA » Mon Sep 02, 2019 12:40 am

Hola amigos.
Estoy probando descarga de ficheros desde una URL.
Se que hay bastante informacion en el foro, y por supuesto, desde aquí he tomado muestras para lo que codifiqué.

El siguiente codigo compila y se ejecuta, pero el bendito fichero (supuestamente descargado) no está por ningún lado.

Pueden decirme que he omitido, o hago mal, en el ejemplo siguiente?

Code: Select all  Expand view
function DescargFichDesdeUrl()
   local cFile := "d:\fapsoft_foro\franco.png"
   local cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"

   ? DELETEURLCACHEENTRY( cUrl )     //Retorna .f.

   ? URLDOWNLOADTOFILE( 0, cUrl, cFile )    //Retorna -2146697208
 
RETURN NIL

DLL STATIC FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 

Saludos.

PD: Solucion en
viewtopic.php?f=6&t=37703&sid=3cb5f50584b22e3c0c729b3083809143#p225509
Last edited by FranciscoA on Sun Sep 08, 2019 2:33 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby karinha » Mon Sep 02, 2019 1:23 pm

Code: Select all  Expand view

#include "FiveWin.ch"

function DescargFichDesdeUrl()

   //local cFile := "d:\fapsoft_foro\franco.png"    // ERRO: NOMBRE ERRADO.
   LOCAL cFile       := "C:\Download\Fivetechv.png" // Nombre correcto.
   LOCAL cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"

   ? DELETEURLCACHEENTRY( cUrl )          // Retorna .T.

   // Mira C:\Downlod -> Fivetechv.png
   URLDOWNLOADTOFILE( 0, cUrl, cFile )
 
RETURN NIL

DLL FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL ;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby FranciscoA » Mon Sep 02, 2019 3:28 pm

Joao, gracias por responder.
Hice lo que sugeriste, pero sigue lo mismo: no descarga el fichero.
Aqui está el código.

Lo raro es que Silvio usó mi código y tanto él como Ukoenig confirman que les funciona. No se por qué a mi no.
viewtopic.php?f=3&t=37707&sid=b548dfcbeca847c11592025c75c134f3#p225433

- Funciona sólo en HARBOUR?
- Tengo que hacer alguna configuración en mi equipo?
- Algo mas?

Code: Select all  Expand view
function DescargFichDesdeUrl()
   local cFile := "c:\downloads\Fivetechv.png"
   local cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"

   ? DELETEURLCACHEENTRY( cUrl )

   ? URLDOWNLOADTOFILE( 0, cUrl, cFile )
 
RETURN NIL

DLL STATIC FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 


Alguna otra idea?

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby karinha » Mon Sep 02, 2019 4:19 pm

Image
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby karinha » Mon Sep 02, 2019 4:51 pm

Creo, sea tú versión.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby FranciscoA » Mon Sep 02, 2019 5:14 pm

Joao.
Agradezco tu atención y tiempo.
Ya funcionó.
Lo probé con el sitio de Ukoenig y todo ok, por lo que deduzco que el fichero de fivetech del ejemplo no existe.
http://fivetechsupport.com/forums/viewt ... f3#p225433
Saludos.

Code: Select all  Expand view

#include "FiveWin.ch"

function DescargFichDesdeUrl()
local nRet
*local cFile := "d:\fapsoft__foro\DcgaHttps\Fivetechv.png"
*local cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"

local cFile := "d:\fapsoft__foro\DcgaHttps\GDItest1_.zip"
local cUrl  := "http://www.Pflegeplus.com/DOWNLOADS/Gditest1.zip"


   DELETEURLCACHEENTRY( cUrl )

   nRet := URLDOWNLOADTOFILE( 0, cUrl, cFile )
   
   if nRet == 0
      MsgInfo("Fichero guardado como " + cFile )
   else
      MsgStop("Fichero no fué descargado.","Error")
   endif

RETURN NIL

DLL STATIC FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 
Last edited by FranciscoA on Tue Sep 03, 2019 5:33 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby FranciscoA » Mon Sep 02, 2019 5:29 pm

FranciscoA wrote:... por lo que deduzco que el fichero de fivetech del ejemplo no existe.


Corrijo: El fichero mencionado existe, pero no se por qué no lo descarga.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby karinha » Mon Sep 02, 2019 5:43 pm

Aqui descarga bién. Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby FranciscoA » Mon Sep 02, 2019 9:31 pm

Confirmo.
Hice pruebas con diversos sitios y funciona perfectamente con direcciones que empiezan con HTTP.
Es decir, no me funciona con direcciones HTTPS.
He "GooGleado" sobre esto, pero no he encontrado algo que me indique qué hacer. (solo explicación de que la diferencia entre estos dos es unicamente la seguridad)
¿Pueden orientarme al respecto?.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby karinha » Tue Sep 03, 2019 12:42 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby FranciscoA » Tue Sep 03, 2019 4:35 pm

Karinha, gracias por el link.
El codigo donde llama a URLDOWNLOADTOFILE es igual al mio.
Ahi usan http, y el problema mio es con [b]https[/b].

Puedes probar el siguiente codigo con FW 1204, por favor?
Code: Select all  Expand view

#include "FiveWin.ch"

function DescargFichDesdeUrl()
local cFile, cUrl, aFich :={},aFiles:={}

   cFile := "c:\download\Fivetechv.png"
   cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"     // HTTPS
   aadd(aFich,{cUrl,cFile})

   cFile := "c:\download\PruebaGDI_.zip"
   cUrl  := "http://www.Pflegeplus.com/DOWNLOADS/Gditest1.zip"    // http
   aadd(aFich,{cUrl,cFile})

   AEval(aFich,{|a,n| Descargando( aFich[n,1],aFich[n,2],aFiles ) })

   XBROWSE( aFiles, "DESCARGAS" )
RETURN NIL

//--------------------------------------------------------//
Function Descargando(cUrl,cFile,aFiles)
local nRet

   MsgRun("Aguarde por favor, descargando...",,{|| ;
           DELETEURLCACHEENTRY( cUrl ) ,;
           nRet := URLDOWNLOADTOFILE( 0, cUrl, cFile ), SysRefresh() })
   
   if nRet == 0
      aadd( aFiles,{cUrl, cFile} )
   else
      aadd( aFiles,{cUrl, "Descarga ha fallado" +"  INET_E_DOWNLOAD_FAILURE (0x800C0008L or -2146697208)" } )
      MsgInfo(nRet,"Error INET")
   endif

RETURN NIL

DLL STATIC FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 

Gracias.
Last edited by FranciscoA on Tue Sep 03, 2019 5:33 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby karinha » Tue Sep 03, 2019 5:08 pm

No tengo tú versión Francisco. Mira, funciona bién.

Image
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby karinha » Tue Sep 03, 2019 5:12 pm

Code: Select all  Expand view

#include "FiveWin.ch"

function DescargFichDesdeUrl()

   local cFile, cUrl, aFich :={},aFiles:={}

   cFile := "c:\download\Fivetechv.png"  // funciona.

   cUrl  := "https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png"     // HTTPS

   aadd(aFich,{cUrl,cFile})

   cFile := "c:\download\PruebaGDI_.zip"  // funciona
   // cFile := "c:\download\Gditest1.zip" // funciona

   cUrl  := "http://www.Pflegeplus.com/DOWNLOADS/Gditest1.zip"    // http

   aadd(aFich,{cUrl,cFile})

   AEval(aFich,{|a,n| Descargando( aFich[n,1],aFich[n,2],aFiles ) })

   XBROWSE( aFiles, "DESCARGAS" )

RETURN NIL

//--------------------------------------------------------//
Function Descargando(cUrl,cFile,aFiles)
local nRet

   MsgRun("Aguarde por favor, descargando...",,{|| ;
           DELETEURLCACHEENTRY( cUrl ) ,;
           nRet := URLDOWNLOADTOFILE( 0, cUrl, cFile ), SysRefresh() })
   
   if nRet == 0
      aadd( aFiles,{cUrl, cFile} )
   else
      aadd( aFiles,{cUrl, "Descarga ha fallado" +"  INET_E_DOWNLOAD_FAILURE (0x800C0008L or -2146697208)" } )
      MsgInfo(nRet,"Error INET")
   endif

RETURN NIL

DLL STATIC FUNCTION DELETEURLCACHEENTRY( cUrl AS LPSTR ) AS BOOL;
    PASCAL FROM "DeleteUrlCacheEntryA" LIB "wininet.dll"

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7213
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Descarga desde https

Postby FranciscoA » Tue Sep 03, 2019 5:35 pm

Joao:
Muchas gracias por tu colaboración.
Voy a presentar el codigo a colegas que puedan tener la version FW 1204.

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2110
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Descarga desde https

Postby Sistem » Tue Sep 03, 2019 7:44 pm

deve ser algo no host

If DowlFile("https://bitbucket.org/fivetech/fivewin-contributions/downloads/Fivetechv.png", "e:\Fivetechv.png") // Retorna NAO OK
? "ok"
Else
? "NAO OK"
Endif

If DowlFile("http://www.Pflegeplus.com/DOWNLOADS/Gditest1.zip", "e:\Fivetechv.png") // RETORNA OK
? "ok
Else
? "NAO OK"
Endif

//--------------------------------------------------------------------------------
Function DowlFile(cLink, cDest)
Local oXMLHTTP, oADODBStream, lOk:=.f.

oXMLHTTP := CREATEOBJECT( "Microsoft.XMLHTTP" )
oADODBStream := CREATEOBJECT( "Adodb.Stream" )
oXMLHTTP:Open( "GET", cLink, .f. )
oXMLHTTP:Send()

If oXMLHTTP:Status() == 200
oADODBStream:Type := 1
oADODBStream:Open()
oADODBStream:Write( oXMLHTTP:ResponseBody )
oADODBStream:SaveToFile( cDest, 2 )
// MsgAlert("Download feito, ok", "Aviso")
lOk:=.t.
Else
// MsgAlert("Erro com download", "Aviso")
lOk:=.f.
Endif

Return lOk
FWH2008 | xHarbour | BCC74 | SQLRDD
User avatar
Sistem
 
Posts: 226
Joined: Sun May 13, 2012 7:52 am

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 55 guests