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