CodeSnippet/http_path_parser at master · wshgit/CodeSnippet · GitHub
Skip to content

Latest commit

 

History

History
 
 

Folders and files

http_path_parser

该程序用来处理http request中path。例如test.php?user_name=simon&age=19 得到该path中所有的Key-value对。

特别:对于test.php?username=si&&mon&age=19 user_name中包含&的情况也做了处理。会得到si&&mon而不是si.

定义了一个struct:

typedef struct {
     char *key;
     int key_len;
     char *value;
     int value_len;
 } KV;

来记录key/value的起始位置和长度。 接口:

int getKV(char *path, KV *kvs, int *kvs_num)

传入一个KV数组和数组长度:

KV kvs[10];
int  kvs_num = sizeof(kvs)/sizeof(kvs[0]);
int ret = getKV(p, kvs, &kvs_num);
int i;
for (i=0; i<kvs_num; i++) {
     printf("%.*s=%.*s\n", kvs[i].key_len, kvs[i].key, kvs[i].value_len, kvs[i].value);
}