DataFlex
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
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