Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = false
let ht = CkoHashtable()!
// Add name/value pairs from an existing query param string where the values are already URL encoded.
var qp: String? = "txt=this%20is%20a%20test&color=blue&fruits=apples%26oranges"
success = ht.addQueryParams(queryParams: qp)
// Add some additional name/value pairs.
ht.addStr(key: "name", value: "Jack Sparrow")
ht.addStr(key: "movie", value: "Pirates of the Carribean")
// Iterate over the hash table to show what we have..
let keys = CkoStringTable()!
ht.getKeys(strTable: keys)
var numKeys: Int = keys.count.intValue
var key: String?
var val: String?
var i: Int = 0
while i < numKeys {
key = keys.string(at: i)
val = ht.lookupStr(key: key)
print("\(key!) = \(val!)")
i = i + 1
}
// 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 = ht.toQueryString()
print("\(qp!)")
// Result:
// color=blue&name=Jack%20Sparrow&fruits=apples%26oranges&txt=this%20is%20a%20test&movie=Pirates%20of%20the%20Carribean
}