Sample code for 30+ languages & platforms
PureBasic

HTTPS GET URL with URL Encoded Query Params

See more HTTP Examples

Creates a URL with URL encoded query params, and sends an HTTPS GET to the URL.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkHttp.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; Create a URL with URL-encoded query params.
    sbUrl.i = CkStringBuilder::ckCreate()
    If sbUrl.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkStringBuilder::ckAppend(sbUrl,"https://www.example.com/something?")

    ; If we know a query param value does not have any special chars requiring URL encoding,
    ; just add it.  In this case, there is no need to URL encode "123" because "123" url encoded is still just "123".
    CkStringBuilder::ckAppend(sbUrl,"abc=123&xyz=")

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

    CkStringBuilder::ckAppend(sbValue,"this is a test")

    CkStringBuilder::ckAppend(sbUrl,"msg=")
    CkStringBuilder::ckAppend(sbUrl,CkStringBuilder::ckGetEncoded(sbValue,"url","utf-8"))

    ; sbUrl contains:  https://www.example.com/something?abc=123&xyz=msg=this%20is%20a%20test
    Debug CkStringBuilder::ckGetAsString(sbUrl)

    ; Send the GET request and get the response body, which is assumed to be text of some sort (HTML, XML, JSON, etc.)
    ; (Chilkat automatically decompresses gzipped responses)
    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    responseBody.s = CkHttp::ckQuickGetStr(http,CkStringBuilder::ckGetAsString(sbUrl))
    If CkHttp::ckLastMethodSuccess(http) = 0
        Debug CkHttp::ckLastErrorText(http)
        CkStringBuilder::ckDispose(sbUrl)
        CkStringBuilder::ckDispose(sbValue)
        CkHttp::ckDispose(http)
        ProcedureReturn
    EndIf

    Debug "Response Body:"
    Debug responseBody


    CkStringBuilder::ckDispose(sbUrl)
    CkStringBuilder::ckDispose(sbValue)
    CkHttp::ckDispose(http)


    ProcedureReturn
EndProcedure