Visual FoxPro
Visual FoxPro
HTTP Download with Progress Event Callbacks
See more HTTP Examples
Downloads a file via HTTP or HTTPS and uses event callbacks to monitor progress.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL lcLocalFilePath
lnSuccess = 0
* This example assumes the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
httpEventHandler = CreateObject("httpEvents")
EventHandler(loHttp,httpEventHandler)
* Set a heartbeat in milliseconds
loHttp.HeartbeatMs = 200
* Download a file...
lcLocalFilePath = "qa_output/Python-3.4.4.tar.xz"
lnSuccess = loHttp.Download("https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz",lcLocalFilePath)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
CANCEL
ENDIF
? "OK!"
RELEASE loHttp
[K]DEFINE CLASS[/K] httpEvents [K]AS SESSION OLEPUBLIC[/K]
[K]IMPLEMENTS[/K] _IChilkatHttpEvents [K]IN[/K] "Chilkat.Http"
[K]PROCEDURE[/K] _IChilkatHttpEvents_AbortCheck(abort [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_BinaryData(data [K]As[/K] [K]Variant[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_BeginReceive
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_BeginSend
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_HttpChunked
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_EndReceive(success [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_EndSend(success [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_HttpRedirect(originalUrl [K]As[/K] [K]String[/K], redirectUrl [K]As[/K] [K]String[/K], abort [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_PercentDone(pctDone [K]As[/K] [K]Number[/K], abort [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
? "Percent Done: " + STR(pctDone)
* Explicitly abort at 25% or greater.
* Remove this to allow for the HTTP download to run to completion.
IF (pctDone > 25) THEN
abort = 1
ENDIF
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_ProgressInfo(name [K]As[/K] [K]String[/K], value [K]As[/K] [K]String[/K])
[C]* Application code goes here...[/C]
? name + ": " + value
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_ReceiveRate(byteCount [K]As[/K] [K]Number[/K], bytesPerSec [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_SendRate(byteCount [K]As[/K] [K]Number[/K], bytesPerSec [K]As[/K] [K]Number[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_TaskCompleted(task [K]As[/K] [K]Generic[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]PROCEDURE[/K] _IChilkatHttpEvents_TextData(data [K]As[/K] [K]String[/K])
[C]* Application code goes here...[/C]
[K]ENDPROC[/K]
[K]ENDDEFINE[/K]