Sample code for 30+ languages & platforms
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

PureBasic
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