Sample code for 30+ languages & platforms
DataFlex

Keeping Query Params in a Hashtable

Demonstrates how to use a Chilkat Hashtable to hold query params and re-emit as a query param string.

Note: The ToQueryString method was added in Chilkat v9.5.0.92.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoHt
    String sQp
    Variant vKeys
    Handle hoKeys
    Integer iNumKeys
    String sKey
    String sVal
    Integer i

    Move False To iSuccess

    Get Create (RefClass(cComChilkatHashtable)) To hoHt
    If (Not(IsComObjectCreated(hoHt))) Begin
        Send CreateComObject of hoHt
    End

    // Add name/value pairs from an existing query param string where the values are already URL encoded.
    Move "txt=this%20is%20a%20test&color=blue&fruits=apples%26oranges" To sQp
    Get ComAddQueryParams Of hoHt sQp To iSuccess

    // Add some additional name/value pairs.
    Get ComAddStr Of hoHt "name" "Jack Sparrow" To iSuccess
    Get ComAddStr Of hoHt "movie" "Pirates of the Carribean" To iSuccess

    // Iterate over the hash table to show what we have..

    Get Create (RefClass(cComChilkatStringTable)) To hoKeys
    If (Not(IsComObjectCreated(hoKeys))) Begin
        Send CreateComObject of hoKeys
    End
    Get pvComObject of hoKeys to vKeys
    Get ComGetKeys Of hoHt vKeys To iSuccess
    Get ComCount Of hoKeys To iNumKeys

    Move 0 To i
    While (i < iNumKeys)
        Get ComStringAt Of hoKeys i To sKey
        Get ComLookupStr Of hoHt sKey To sVal
        Showln sKey " = " sVal
        Move (i + 1) To i
    Loop

    // Output for the above loop:

    // color = blue
    // name = Jack Sparrow
    // fruits = apples&oranges
    // txt = this is a test
    // movie = Pirates of the Carribean

    // Get all name/value pairs as a query parm string with values URL encoded
    Get ComToQueryString Of hoHt To sQp
    Showln sQp

    // Result:
    // color=blue&name=Jack%20Sparrow&fruits=apples%26oranges&txt=this%20is%20a%20test&movie=Pirates%20of%20the%20Carribean


End_Procedure