| 5 | using namespace acl; |
| 6 | |
| 7 | void test_url_coder(void) |
| 8 | { |
| 9 | url_coder coder1; |
| 10 | |
| 11 | coder1.set("name1", "value1"); |
| 12 | coder1.set("name2", 2); |
| 13 | coder1.set("name3", true, "value%d", 3); |
| 14 | coder1.set("name4", "中国人"); |
| 15 | printf("coder1 >> %s, name1: %s, name2: %s, name3: %s, name4: %s\r\n", |
| 16 | coder1.to_string().c_str(), |
| 17 | coder1["name1"], coder1["name2"], coder1["name3"], coder1["name4"]); |
| 18 | coder1.del("name1"); |
| 19 | const char* ptr = coder1["name1"]; |
| 20 | printf("coder1 >> %s, name1: %s, name2: %s, name3: %s, name4: %s\r\n", |
| 21 | coder1.to_string().c_str(), ptr ? ptr : "null", |
| 22 | coder1["name2"], coder1["name3"], coder1["name4"]); |
| 23 | |
| 24 | ////////////////////////////////////////////////////////////////////////// |
| 25 | |
| 26 | url_coder coder2; |
| 27 | |
| 28 | coder2 = coder1; |
| 29 | coder2.set("name5", "&=value5=&"); |
| 30 | ptr = coder2["name1"]; |
| 31 | printf("--------------------------------------------------------\r\n"); |
| 32 | printf("coder2 >> %s, name1: %s, name2: %s, name3: %s, name4: %s, name5: %s\r\n", |
| 33 | coder2.to_string().c_str(), ptr ? ptr : "null", |
| 34 | coder2["name2"], coder2["name3"], coder2["name4"], coder2["name5"]); |
| 35 | |
| 36 | ////////////////////////////////////////////////////////////////////////// |
| 37 | |
| 38 | url_coder coder3(coder2); |
| 39 | |
| 40 | coder3.set("name5", 5); |
| 41 | coder3.set("name6", "=&外国人&="); |
| 42 | ptr = coder3["name1"]; |
| 43 | printf("--------------------------------------------------------\r\n"); |
| 44 | printf("coder3 >> %s, name1: %s, name2: %s, name3: %s, name4: %s, name5: %s, name6: %s\r\n", |
| 45 | coder3.to_string().c_str(), ptr ? ptr : "null", |
| 46 | coder3["name2"], coder3["name3"], coder3["name4"], |
| 47 | coder3["name5"], coder3["name6"]); |
| 48 | |
| 49 | ////////////////////////////////////////////////////////////////////////// |
| 50 | |
| 51 | url_coder coder4; |
| 52 | const char* s = "name1=value1&name2=2&name3=value3&name4=%D6%D0%B9%FA%C8%CB"; |
| 53 | coder4.decode(s); |
| 54 | printf("--------------------------------------------------------\r\n"); |
| 55 | printf("coder4 >> %s, name1: %s, name2: %s, name3: %s, name4: %s\r\n", |
| 56 | coder4.to_string().c_str(), |
| 57 | coder4["name1"], coder4["name2"], coder4["name3"], coder4["name4"]); |
| 58 | } |