1
0
mirror of https://github.com/lammertb/libhttp.git synced 2025-07-03 06:22:34 +03:00

C++ embedding example should do the same as the C embedding example

This commit is contained in:
bel
2014-01-10 22:22:26 +01:00
parent 2b706509f7
commit c471b9bdc9
2 changed files with 25 additions and 3 deletions

View File

@ -23,7 +23,10 @@ public:
bool handleGet(CivetServer *server, struct mg_connection *conn) {
mg_printf(conn, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
mg_printf(conn, "<html><body>");
mg_printf(conn, "<h2>This is example text!!!</h2>");
mg_printf(conn, "<h2>This is an example text from a C++ handler</h2>");
mg_printf(conn, "<p>To see a page from the A handler <a href=\"A\">click here</a></p>");
mg_printf(conn, "<p>To see a page from the A/B handler <a href=\"A/B\">click here</a></p>");
mg_printf(conn, "<p>To see a page from the *.foo handler <a href=\"xy.foo\">click here</a></p>");
mg_printf(conn, "<p>To exit <a href=\"%s\">click here</a></p>",
EXIT_URI);
mg_printf(conn, "</body></html>\n");
@ -66,6 +69,24 @@ public:
}
};
class FooHandler: public CivetHandler
{
public:
bool handleGet(CivetServer *server, struct mg_connection *conn) {
/* Handler may access the request info using mg_get_request_info */
struct mg_request_info * req_info = mg_get_request_info(conn);
mg_printf(conn, "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n");
mg_printf(conn, "<html><body>");
mg_printf(conn, "<h2>This is the Foo handler!!!</h2>");
mg_printf(conn, "<p>The request was:<br><pre>%s %s HTTP/%s</pre></p>",
req_info->request_method, req_info->uri, req_info->http_version);
mg_printf(conn, "</body></html>\n");
return true;
}
};
int main(int argc, char *argv[])
{
@ -79,6 +100,7 @@ int main(int argc, char *argv[])
server.addHandler(EXIT_URI, new ExitHandler());
server.addHandler("/a", new AHandler());
server.addHandler("/a/b", new ABHandler());
server.addHandler("**.foo$", new FooHandler());
printf("Browse files at http://localhost:%s/\n", PORT);
printf("Run example at http://localhost:%s%s\n", PORT, EXAMPLE_URI);