Sample code for 30+ languages & platforms
PureBasic

HTTP GET with utf-8 URL Encoded Query Params

See more HTTP Examples

Demonstrates how to build URLs where query param values can be either URL encoded from the utf-8 representation, or from another charset such as windows-1252.

Note: This example uses the new DecodeAndAppend method added in Chilkat v9.5.0.87.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

    ; We have the string "MÆRSK".

    ; This is the URL encoding of the windows-1252 representation.
    nameWindows1252UrlEncoded.s = "M%C6RSK"

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

    success = CkStringBuilder::ckDecodeAndAppend(sb1,nameWindows1252UrlEncoded,"url","windows-1252")

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

    ; Here's how to send an HTTP GET where the param is the utf-8 representation that is URL encoded.
    ; For example:  https://www.chilkatsoft.com/something?name=M%C3%A6RSK

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

    CkStringBuilder::ckAppend(sbUrl,"https://www.chilkatsoft.com/something?name=")
    CkStringBuilder::ckAppend(sbUrl,CkStringBuilder::ckGetEncoded(sb1,"url","utf-8"))
    Debug CkStringBuilder::ckGetAsString(sbUrl)

    responseBody.s = CkHttp::ckQuickGetStr(http,CkStringBuilder::ckGetAsString(sbUrl))

    ; Here's how to send an HTTP GET where the param is the windows-1252 representation that is URL encoded.
    ; For example:  https://www.chilkatsoft.com/something?name=M%E6RSK

    CkStringBuilder::ckClear(sbUrl)
    CkStringBuilder::ckAppend(sbUrl,"https://www.chilkatsoft.com/something?name=")
    CkStringBuilder::ckAppend(sbUrl,CkStringBuilder::ckGetEncoded(sb1,"url","windows-1252"))
    Debug CkStringBuilder::ckGetAsString(sbUrl)

    responseBody = CkHttp::ckQuickGetStr(http,CkStringBuilder::ckGetAsString(sbUrl))


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


    ProcedureReturn
EndProcedure