Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) HttpPostJson2Async ExampleDemonstrates use of the HttpPostJson2Async method.
integer li_rc oleobject loo_Http integer li_Success string ls_JsonBody oleobject loo_Task oleobject loo_Resp integer li_StatusCode oleobject loo_Json // 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. loo_Http = create oleobject // Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 li_rc = loo_Http.ConnectToNewObject("Chilkat.Http") if li_rc < 0 then destroy loo_Http MessageBox("Error","Connecting to COM object failed") return end if // 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.. loo_Http.AcceptCharset = "" loo_Http.UserAgent = "" loo_Http.AcceptLanguage = "" loo_Http.AllowGzip = 0 ls_JsonBody = "{~"client_id~": ~"PLAID_CLIENT_ID~", ~"secret~":~"PLAID_SECRET~", ~"count~": 10, ~"offset~": 0}" loo_Task = loo_Http.PostJson2Async("https://sandbox.plaid.com/institutions/get","application/json",ls_JsonBody) if loo_Http.LastMethodSuccess = 0 then Write-Debug loo_Http.LastErrorText destroy loo_Http return end if // Start the background task. li_Success = loo_Task.Run() if not li_Success then Write-Debug loo_Task.LastErrorText destroy loo_Task destroy loo_Http return end if // 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 loo_Task.Finished <> 1 // Sleep 100 ms. loo_Task.SleepMs(100) loop // 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 loo_Task.StatusInt <> 7 then Write-Debug "Task did not complete." Write-Debug "task status: " + loo_Task.Status destroy loo_Task destroy loo_Http return end if // 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 loo_Task.TaskSuccess = 0 then Write-Debug "The underlying task failed, and there is no HTTP response object." Write-Debug "The LastErrorText for the underlying method call is:" Write-Debug loo_Task.ResultErrorText destroy loo_Task destroy loo_Http return end if // To get the HTTP response object, create a new instance and load it with the result from the task. loo_Resp = create oleobject // Use "Chilkat_9_5_0.HttpResponse" for versions of Chilkat < 10.0.0 li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse") loo_Resp.LoadTaskResult(loo_Task) destroy loo_Task li_StatusCode = loo_Resp.StatusCode Write-Debug "Response status code = " + string(li_StatusCode) // Examine the JSON response.. loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.Load(loo_Resp.BodyStr) loo_Json.EmitCompact = 0 Write-Debug "JSON Response Body:" Write-Debug loo_Json.Emit() destroy loo_Http destroy loo_Resp destroy loo_Json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.