Sample code for 30+ languages & platforms
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

Visual FoxPro
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