|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Tcl) Getting the HTTP Response after an Asynchronous HTTP Request CompletesSome HTTP methods return an HTTP response object. This example demonstrates how to obtain the HTTP response object for such a method when calling asynchronously. 
 load ./chilkat.dll # All Chilkat classes can be unlocked at once at the beginning of a program # by calling UnlockBundle. It requires a Bundle unlock code. set chilkatGlob [new_CkGlobal] set success [CkGlobal_UnlockBundle $chilkatGlob "Anything for 30-day trial."] if {$success != 1} then { puts [CkGlobal_lastErrorText $chilkatGlob] delete_CkGlobal $chilkatGlob exit } set http [new_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. # task is a CkTask set task [CkHttp_QuickGetObjAsync $http "https://stackexchange.com"] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkGlobal $chilkatGlob delete_CkHttp $http exit } # Schedule the task for running on the thread pool. This changes the task's state # from Inert to Live. set success [CkTask_Run $task] if {$success != 1} then { puts [CkTask_lastErrorText $task] delete_CkTask $task delete_CkGlobal $chilkatGlob delete_CkHttp $http exit } # 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. while {[CkTask_get_Finished $task] != 1} { # Sleep 100 ms. CkTask_SleepMs $task 100 } # 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 {[CkTask_get_StatusInt $task] != 7} then { puts "Task did not complete." puts "task status: [CkTask_status $task]" delete_CkTask $task delete_CkGlobal $chilkatGlob delete_CkHttp $http exit } # 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. set resp [new_CkHttpResponse] set success [CkHttpResponse_LoadTaskResult $resp $task] if {$success != 1} then { puts [CkHttpResponse_lastErrorText $resp] delete_CkTask $task delete_CkGlobal $chilkatGlob delete_CkHttp $http delete_CkHttpResponse $resp exit } delete_CkTask $task # Now that we have the response, we can get all of the information: puts "status code: [CkHttpResponse_get_StatusCode $resp]" puts "response header: [CkHttpResponse_header $resp]" # .. delete_CkGlobal $chilkatGlob delete_CkHttp $http delete_CkHttpResponse $resp | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.