The abstract base class for AbstractHTTPRequestHandlers created by HTTPServer.
Derived classes must override the run() method. Contrary to a HTTPRequestHandler, an AbstractHTTPRequestHandler stores request and response as member variables to avoid having to pass them around as method parameters. Additionally, a HTMLForm object is created for use by subclasses.
Direct Base Classes: HTTPRequestHandler
All Base Classes: HTTPRequestHandler
Inherited Functions: handleRequest
Creates the AbstractHTTPRequestHandler.
Destroys the AbstractHTTPRequestHandler.
HTMLForm & form();
This class implements some common behavior, before calling run() to actually handle the request:
- save request and response objects;
- call authorize();
- if authorize() returns true call run(), else send 401 (Unauthorized) response.
If run() throws an exception and the response has not been sent yet, sends a 500 (Internal Server Error) response with the exception's display text.
HTTPServerRequest & request();
Returns the request.
HTTPServerResponse & response();
Returns the response.
const std::string & message
Sends a HTML error page for the given status code. The given message is added to the page:
<HTML> <HEAD> <TITLE>status - reason</TITLE> </HEAD> <BODY> <H1>status - reason</H1> <P>message</P> </BODY> </HTML>
virtual bool authenticate();
Check authentication; returns true if okay, false if failed to authenticate. The default implementation always returns true.
Subclasses can override this member function to perform some form of client or request authentication before the request is actually handled.
virtual void run() = 0;
Must be overridden by subclasses.
Handles the given request.