![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript 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
(PureBasic) curl Dependency Engine Simple ExampleSee more CURL ExamplesThis example demonstrates a simple way to define When the
The execution plan is then carried out, with the final step being the target curl command originally passed to Note: This example requires Chilkat v11.5.0 or greater. For more information, see https://www.chilkatsoft.com/curl_dependency_engine.asp
IncludeFile "CkHttpCurl.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() success.i = 0 httpCurl.i = CkHttpCurl::ckCreate() If httpCurl.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The target curl command we ultimately want to execute. ; It requires a {{site_id}} value, which is not yet known. targetCurl.s = "GET https://graph.microsoft.com/v1.0/sites/{{site_id}}/drives" ; Because site_id is unknown, we define a helper function (curl command) ; that can retrieve it. fnName.s = "getSite" CkHttpCurl::ckAddFunction(httpCurl,fnName,"GET https://graph.microsoft.com/v1.0/sites/root:/sites/{{site_name}}") ; Define the outputs produced by the helper function. ; Outputs are extracted from the JSON response using JSON paths. ; Here, the "id" field from the response is mapped to the variable "site_id". jsonPath.s = "id" CkHttpCurl::ckAddOutput(httpCurl,fnName,jsonPath,"site_id") ; Provide a value for site_name, which is required by the getSite function. CkHttpCurl::ckSetVar(httpCurl,"site_name","test") ; ---------------------------------------------------------------------------------------------------------------------- ; Build the OAuth2 configuration used for authentication. ; This uses the client credentials flow, with secrets retrieved ; from the local secrets manager (because EnableSecrets = true). jsonOAuth2.i = CkJsonObject::ckCreate() If jsonOAuth2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEnableSecrets(jsonOAuth2, 1) CkJsonObject::ckUpdateString(jsonOAuth2,"oauth2.client_id","!!sharepoint|oauth2|client_id") CkJsonObject::ckUpdateString(jsonOAuth2,"oauth2.client_secret","!!sharepoint|oauth2|client_secret") CkJsonObject::ckUpdateString(jsonOAuth2,"oauth2.scope","https://graph.microsoft.com/.default") CkJsonObject::ckUpdateString(jsonOAuth2,"oauth2.token_endpoint","!!sharepoint|oauth2|token_endpoint") ; ---------------------------------------------------------------------------------------------------------------------- CkHttpCurl::ckSetAuth(httpCurl,jsonOAuth2) ; Execute the target curl command. ; Internally, the system will: ; 1) Detect that {{site_id}} is required but not yet defined. ; 2) Find that the "getSite" function can produce site_id. ; 3) Verify that getSite's input (site_name) is already available. ; 4) Build an execution plan: first run getSite, then run the target curl. success = CkHttpCurl::ckDoYourThing(httpCurl,targetCurl) If success = 0 Debug CkHttpCurl::ckLastErrorText(httpCurl) CkHttpCurl::ckDispose(httpCurl) CkJsonObject::ckDispose(jsonOAuth2) ProcedureReturn EndIf ; Retrieve and display the HTTP response status code. statusCode.i = CkHttpCurl::ckStatusCode(httpCurl) Debug "response status code: " + Str(statusCode) ; Load and display the JSON response from the final curl command. responseJson.i = CkJsonObject::ckCreate() If responseJson.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(responseJson, 0) CkHttpCurl::ckGetResponseJson(httpCurl,responseJson) Debug CkJsonObject::ckEmit(responseJson) CkHttpCurl::ckDispose(httpCurl) CkJsonObject::ckDispose(jsonOAuth2) CkJsonObject::ckDispose(responseJson) ProcedureReturn EndProcedure |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.