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
DEFINE CLASS httpEvents AS SESSION OLEPUBLIC
IMPLEMENTS _IChilkatHttpEvents IN "Chilkat.Http"
PROCEDURE _IChilkatHttpEvents_AbortCheck(abort As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_BinaryData(data As Variant)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_BeginReceive
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_BeginSend
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_HttpChunked
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_EndReceive(success As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_EndSend(success As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_HttpRedirect(originalUrl As String, redirectUrl As String, abort As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_PercentDone(pctDone As Number, abort As Number)
* Application code goes here...
? "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
ENDPROC
PROCEDURE _IChilkatHttpEvents_ProgressInfo(name As String, value As String)
* Application code goes here...
? name + ": " + value
ENDPROC
PROCEDURE _IChilkatHttpEvents_ReceiveRate(byteCount As Number, bytesPerSec As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_SendRate(byteCount As Number, bytesPerSec As Number)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_TaskCompleted(task As Generic)
* Application code goes here...
ENDPROC
PROCEDURE _IChilkatHttpEvents_TextData(data As String)
* Application code goes here...
ENDPROC
ENDDEFINE