PureBasic
PureBasic
curl with Path Variables and Query Param Variables
See more CURL Examples
This example demonstrates using variables located in the path and query params with the {{variable_name}} syntax.Chilkat PureBasic Downloads
IncludeFile "CkHttpCurl.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; Variables can occur in the path and query params.
; Variable names are enclosed between {{ and }}
; curl -X GET https://httpbin.org/{{verb}}?id={id_value}}
targetCurl.s = "curl -X GET https://httpbin.org/{{verb}}?id={{id_value}}"
httpCurl.i = CkHttpCurl::ckCreate()
If httpCurl.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Provide values for variables.
; In this example, "verb" is a path variable, and "id_value" is a query param variable.
CkHttpCurl::ckSetVar(httpCurl,"verb","get")
CkHttpCurl::ckSetVar(httpCurl,"id_value","123")
; Run the curl command.
success = CkHttpCurl::ckDoYourThing(httpCurl,targetCurl)
If success = 0
Debug CkHttpCurl::ckLastErrorText(httpCurl)
CkHttpCurl::ckDispose(httpCurl)
ProcedureReturn
EndIf
responseJson.i = CkJsonObject::ckCreate()
If responseJson.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkJsonObject::setCkEmitCompact(responseJson, 0)
statusCode.i = CkHttpCurl::ckStatusCode(httpCurl)
Debug "response status code: " + Str(statusCode)
CkHttpCurl::ckGetResponseJson(httpCurl,responseJson)
Debug CkJsonObject::ckEmit(responseJson)
; Output:
; response status code: 200
; {
; "args": {
; "id": "123"
; },
; "headers": {
; "Host": "httpbin.org",
; "X-Amzn-Trace-Id": "Root=1-69e92914-5d4136d240f2f7fe1056f126"
; },
; "origin": "222.222.222.222",
; "url": "https://httpbin.org/get?id=123"
; }
CkHttpCurl::ckDispose(httpCurl)
CkJsonObject::ckDispose(responseJson)
ProcedureReturn
EndProcedure