PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkStringTable.pb"
IncludeFile "CkHashtable.pb"
Procedure ChilkatExample()
success.i = 0
ht.i = CkHashtable::ckCreate()
If ht.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Add name/value pairs from an existing query param string where the values are already URL encoded.
qp.s = "txt=this%20is%20a%20test&color=blue&fruits=apples%26oranges"
success = CkHashtable::ckAddQueryParams(ht,qp)
; Add some additional name/value pairs.
CkHashtable::ckAddStr(ht,"name","Jack Sparrow")
CkHashtable::ckAddStr(ht,"movie","Pirates of the Carribean")
; Iterate over the hash table to show what we have..
keys.i = CkStringTable::ckCreate()
If keys.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkHashtable::ckGetKeys(ht,keys)
numKeys.i = CkStringTable::ckCount(keys)
key.s
val.s
i.i = 0
While i < numKeys
key = CkStringTable::ckStringAt(keys,i)
val = CkHashtable::ckLookupStr(ht,key)
Debug key + " = " + val
i = i + 1
Wend
; 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
qp = CkHashtable::ckToQueryString(ht)
Debug qp
; Result:
; color=blue&name=Jack%20Sparrow&fruits=apples%26oranges&txt=this%20is%20a%20test&movie=Pirates%20of%20the%20Carribean
CkHashtable::ckDispose(ht)
CkStringTable::ckDispose(keys)
ProcedureReturn
EndProcedure