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
(Lianja) HttpPostJson2Async ExampleDemonstrates use of the HttpPostJson2Async method.
// 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. loHttp = createobject("CkHttp") // 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 = .F. 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 = .F.) then ? loHttp.LastErrorText release loHttp return endif // Start the background task. llSuccess = loTask.Run() if (not llSuccess) then ? loTask.LastErrorText release loTask release loHttp return 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 <> .T. // 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 return 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 = .F.) 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 return endif // To get the HTTP response object, create a new instance and load it with the result from the task. loResp = createobject("CkHttpResponse") loResp.LoadTaskResult(loTask) release loTask lnStatusCode = loResp.StatusCode ? "Response status code = " + str(lnStatusCode) // Examine the JSON response.. loJson = createobject("CkJsonObject") loJson.Load(loResp.BodyStr) loJson.EmitCompact = .F. ? "JSON Response Body:" ? loJson.Emit() release loHttp release loResp release loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.