Is there an easy way to parse a string into k,v pairs?

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

没有正确的解决方案

其他提示

"Easy" depends on how robust and secure you want your code to be.

You can use strchr() in a loop, to repeatedly find the spaces and newlines, and memcpy() to copy those parts of the string into the structure where you want them.

Or you can use strtok() to butcher the string in-place, while collecting pointers into it.

Or you can get more elaborate. Here's a link to the code in Apache HTTPd to do exactly this task: http://svn.apache.org/repos/asf/httpd/httpd/trunk/server/apreq_parser_header.c

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top