是否有一种简单的方法可以将字符串解析为k,v对?
GET / HTTP/1.1
Host: localhost:1337
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: JSESSIONID.e5614f49=1ns34hepyv53k1hg1o78k3z4zy; screenResolution=1920x1080
Connection: keep-alive
答案 0 :(得分:4)
“简单”取决于您希望代码的健壮性和安全性。
您可以在循环中使用strchr()
,重复查找空格和换行符,并memcpy()
将字符串的这些部分复制到您想要的结构中。
或者您可以使用strtok()
就地填充字符串,同时收集指针。
或者你可以更精细。这是Apache HTTPd中代码的链接,可以完成此任务:http://svn.apache.org/repos/asf/httpd/httpd/trunk/server/apreq_parser_header.c