Sample code for 30+ languages & platforms
Visual FoxPro

Async Methods Returning an String

See more Async Examples

Demonstrates how to call an asynchronous method that returns a string. This example sends an HTTPS GET request to a URL and gets the HTML response.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loTask
LOCAL lcHtml

lnSuccess = 0

*  This example requires the Chilkat API to have been previously unlocked.
*  See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

loTask = loHttp.QuickGetStrAsync("https://www.chilkatsoft.com/helloWorld.html")
IF (loHttp.LastMethodSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    CANCEL
ENDIF

*  Start the background task.
lnSuccess = loTask.Run()
IF (NOT lnSuccess) THEN
    ? loTask.LastErrorText
    RELEASE loTask
    RELEASE loHttp
    CANCEL
ENDIF

*  The application is now free to do anything else

*  For this example, we'll simply sleep and periodically
*  check to see if the HTTPS GET if finished.
DO WHILE loTask.Finished <> 1
    *  Sleep 100 ms.
    loTask.SleepMs(100)
ENDDO

*  A finished task could be one that was canceled, aborted, or truly finished.  

*  If the task was "canceled", it was canceled prior to actually starting.  This could
*  happen if the task was canceled while waiting in a thread pool queue to be scheduled by Chilkat's
*  background thread pool scheduler.  

*  If the task was "aborted", it indicates that it was canceled while running in a background thread.  
*  The ResultErrorText will likely indicate that the task was aborted.

*  If the task "completed", then it ran to completion, but the actual success/failure of the method
*  is determined by the result obtained via a GetResult* method.  (A "completed" task will
*  have a StatusInt equal to 7.   If the task finished, but was not completed, then it must've
*  been aborted or canceled:
IF (loTask.StatusInt <> 7) THEN
    ? "Task did not complete."
    ? "task status: " + loTask.Status
    RELEASE loTask
    RELEASE loHttp
    CANCEL
ENDIF

*  The QuickGetStr method returns a string.  Therefore, after the task is finished,
*  we can get the string result by calling GetResultString.  This is the return value had
*  we called QuickGetStr synchronously.
lcHtml = loTask.GetResultString()

? lcHtml

RELEASE loTask

RELEASE loHttp