|  | 
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
| (Visual FoxPro) HttpPostJson2Async ExampleDemonstrates use of the HttpPostJson2Async method. 
 LOCAL loHttp LOCAL lnSuccess LOCAL lcJsonBody LOCAL loTask LOCAL loResp LOCAL lnStatusCode LOCAL loJson * This requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code * See PostJson2 Example for the synchronous equivalent of this example. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') * Sends a POST equivalent to the following CURL command: * curl -X POST https://sandbox.plaid.com/institutions/get \ * -H 'content-type: application/json' \ * -d '{ * "client_id": String, * "secret":String, * "count": Number, * "offset": Number * }' * Suppress some default headers that would automatically added.. loHttp.AcceptCharset = "" loHttp.UserAgent = "" loHttp.AcceptLanguage = "" loHttp.AllowGzip = 0 lcJsonBody = '{"client_id": "PLAID_CLIENT_ID", "secret":"PLAID_SECRET", "count": 10, "offset": 0}' loTask = loHttp.PostJson2Async("https://sandbox.plaid.com/institutions/get","application/json",lcJsonBody) 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 * while the HTTP POST is in progress * For this example, we'll simply sleep and periodically * check to see if the HTTP POST is finished. DO WHILE loTask.Finished <> 1 * Sleep 100 ms. loTask.SleepMs(100) ENDDO * When we get here, the task is either finished successfully or not, or was canceled/aborted. * 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 getting the result of the underlying method call. * A task status of 7 indicates completion. IF (loTask.StatusInt <> 7) THEN ? "Task did not complete." ? "task status: " + loTask.Status RELEASE loTask RELEASE loHttp CANCEL ENDIF * When called synchronously, the PostJson2 method returns an HTTP response object, * unless the method failed and there was no response to be had. * Check to see if PostJson2 method failed (and thus there is no response object). IF (loTask.TaskSuccess = 0) THEN ? "The underlying task failed, and there is no HTTP response object." ? "The LastErrorText for the underlying method call is:" ? loTask.ResultErrorText RELEASE loTask RELEASE loHttp CANCEL ENDIF * To get the HTTP response object, create a new instance and load it with the result from the task. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.HttpResponse') loResp = CreateObject('Chilkat.HttpResponse') loResp.LoadTaskResult(loTask) RELEASE loTask lnStatusCode = loResp.StatusCode ? "Response status code = " + STR(lnStatusCode) * Examine the JSON response.. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.Load(loResp.BodyStr) loJson.EmitCompact = 0 ? "JSON Response Body:" ? loJson.Emit() RELEASE loHttp RELEASE loResp RELEASE loJson | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.