class Poco::Net::AbstractHTTPRequestHandler

Overview

The abstract base class for AbstractHTTPRequestHandlers created by HTTPServer. More…

#include <AbstractHTTPRequestHandler.h>

class AbstractHTTPRequestHandler: public Poco::Net::HTTPRequestHandler
{
public:
    // methods

    virtual
    void
    handleRequest(
        HTTPServerRequest& request,
        HTTPServerResponse& response
        );

    HTTPServerRequest&
    request();

    HTTPServerResponse&
    response();

    HTMLForm&
    form();

    void
    sendErrorResponse(
        HTTPResponse::HTTPStatus status,
        const std::string& message
        );

protected:
    // methods

    virtual
    void
    run() = 0;

    virtual
    bool
    authenticate();
};

Inherited Members

public:
    // methods

    virtual
    void
    handleRequest(
        HTTPServerRequest& request,
        HTTPServerResponse& response
        ) = 0;

Detailed Documentation

The abstract base class for AbstractHTTPRequestHandlers created by HTTPServer.

Derived classes must override the run() method.

Construction

virtual
~AbstractHTTPRequestHandler()

Destroys the AbstractHTTPRequestHandler.

Methods

virtual
void
handleRequest(
    HTTPServerRequest& request,
    HTTPServerResponse& response
    )

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.

HTMLForm&
form()

Returns a HTMLForm for the given request.

The HTMLForm object is created when this member function is executed the first time.

void
sendErrorResponse(
    HTTPResponse::HTTPStatus status,
    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
void
run() = 0

Must be overridden by subclasses.

Handles the given request.

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.