Chilkat Lianja Extension Download

// All Chilkat classes can be unlocked at once at the beginning of a program// by calling UnlockBundle. It requires a Bundle unlock code.
loChilkatGlob = createobject("CkGlobal")
llSuccess = loChilkatGlob.UnlockBundle("Anything for 30-day trial.")
if (llSuccess <> .T.) then
? loChilkatGlob.LastErrorTextrelease loChilkatGlob
returnendif
loHttp = createobject("CkHttp")
// Call the async version of the QuickGetObj method to return a task object.// The task object is loaded, but is in the Inert state -- meaning it is// not yet scheduled to run on Chilkat's background thread pool.
loTask = loHttp.QuickGetObjAsync("https://stackexchange.com")
if (loHttp.LastMethodSuccess <> .T.) then
? loHttp.LastErrorTextrelease loChilkatGlob
release loHttp
returnendif// Schedule the task for running on the thread pool. This changes the task's state// from Inert to Live.
llSuccess = loTask.Run()
if (llSuccess <> .T.) then
? loTask.LastErrorTextrelease loTask
release loChilkatGlob
release loHttp
returnendif// The application is now free to do anything else// while the HTML page is being downloaded.// For this example, we'll simply sleep and periodically// check to see if the QuickGetObjAsync if finished.do while loTask.Finished <> .T.// 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.Statusrelease loTask
release loChilkatGlob
release loHttp
returnendif// The synchronous call to QuickGetObj would return an HTTP response object. To get this// response object for the async call, we instantiate a new/empty HTTP response object,// and then load it from the completed task.
loResp = createobject("CkHttpResponse")
llSuccess = loResp.LoadTaskResult(loTask)
if (llSuccess <> .T.) then
? loResp.LastErrorTextrelease loTask
release loChilkatGlob
release loHttp
release loResp
returnendifrelease loTask
// Now that we have the response, we can get all of the information:
? "status code: " + str(loResp.StatusCode)
? "response header: " + loResp.Header// ...release loChilkatGlob
release loHttp
release loResp