Sample code for 30+ languages & platforms
PureBasic

POST application/x-www-form-urlencoded using REST API

See more REST Examples

Demonstrates how to send a POST with query params (x-www-form-urlencoded) using the Chilkat REST object.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkRest.pb"

Procedure ChilkatExample()

    success.i = 0

    ; This example requires the Chilkat API to have been previously unlocked.
    ; See Global Unlock Sample for sample code.

    rest.i = CkRest::ckCreate()
    If rest.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; This example will send to https://www.chilkatsoft.com/echoPost.asp

    ; Make the initial connection (without sending a request yet).
    bTls.i = 1
    port.i = 443
    bAutoReconnect.i = 1
    success = CkRest::ckConnect(rest,"www.chilkatsoft.com",port,bTls,bAutoReconnect)
    If success <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ; Provide query params.
    CkRest::ckAddQueryParam(rest,"firstName","John")
    CkRest::ckAddQueryParam(rest,"lastName","Doe")
    CkRest::ckAddQueryParam(rest,"company","Bisco Bits Ltd.")

    responseStr.s = CkRest::ckFullRequestFormUrlEncoded(rest,"POST","/echoPost.asp")
    If CkRest::ckLastMethodSuccess(rest) <> 1
        Debug CkRest::ckLastErrorText(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    ; When successful, the response status code will equal 200.
    If CkRest::ckResponseStatusCode(rest) <> 200
        ; Examine the request/response to see what happened.
        Debug "response status code = " + Str(CkRest::ckResponseStatusCode(rest))
        Debug "response status text = " + CkRest::ckResponseStatusText(rest)
        Debug "response header: " + CkRest::ckResponseHeader(rest)
        Debug "response body (if any): " + responseStr
        Debug "---"
        Debug "LastRequestStartLine: " + CkRest::ckLastRequestStartLine(rest)
        Debug "LastRequestHeader: " + CkRest::ckLastRequestHeader(rest)
        CkRest::ckDispose(rest)
        ProcedureReturn
    EndIf

    Debug responseStr
    Debug "Success."


    CkRest::ckDispose(rest)


    ProcedureReturn
EndProcedure