Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to parse HTTP responses in C?

Tags:

c

http

parsing

I'm writing a little project which interacts with a set of servers using HTTP 1.1 GET and POST. The server gives me the response after some header lines, so I though on using strtok() function using \n as the delimiter but there is a crash whenever I try to do so.

Is there any simple way to parse a HTTP response in C? I would like not to use 3rd party libraries for this but if it was really necesary I won't have any problem.

Thank you very much for everything.

EDIT: Here is some example code, just trying to print the lines:

char *response = "HTTP/1.1 200 OK\nServer: Apache-Coyote/1.1\nPragma: no-cache"

char *token = NULL;
token = strtok(response, "\n");
while (token) {
    printf("Current token: %s.\n", token);
    token = strtok(NULL, "\n");
}
like image 820
Güter M. Avatar asked Oct 12 '25 20:10

Güter M.


1 Answers

http-parser is a simple and super-fast HTTP parser written in C for the Node.js project

It's only 2 C files, without any external dependencies.

like image 74
Eli Bendersky Avatar answered Oct 14 '25 15:10

Eli Bendersky