Qore HttpServerUtil Module Reference  1.0.12
HttpServer::AbstractUrlHandler Class Reference

abstract class for HTTP request handlers anchored at a specific URL More...

Inheritance diagram for HttpServer::AbstractUrlHandler:

Public Member Methods

 constructor (string n_url_root, *AbstractAuthenticator auth)
 creates the object based on the URL root and optional authenticator More...
 
string getRelativePath (string path)
 returns the relative path anchored from the url_root if possible More...
 
- Public Member Methods inherited from HttpServer::AbstractHttpRequestHandler
 constructor (*AbstractAuthenticator n_auth, softbool n_stream=False)
 create the object optionally with the given AbstractAuthenticator More...
 
*data getMessageBody (Socket s, hash< auto > hdr, *data body, bool decode=True)
 optionally retrieves and post-processes any message body
 
hash< HttpResponseInfohandleExpectHeader (hash< auto > cx, hash< auto > hdr)
 Called if the request contains an "Expect: 100-continue" header. More...
 
hash< HttpResponseInfohandleRequest (hash< auto > cx, hash< auto > hdr, *data body)
 will be called when a request is received that should be directed to the handler More...
 
hash< HttpResponseInfohandleRequest (HttpListenerInterface listener, Socket s, hash< auto > cx, hash< auto > hdr, *data body)
 top-level request handling method
 
bool isPersistent ()
 returns True if the current connection is persistent, False if not
 
string maskData (string msg)
 this method can be used to mask data in debug messages More...
 
 notifyClosed (*code c)
 calls the argument when the persistent connection is closed
 
nothing persistentClosed ()
 called externally when a persistent connection is closed
 
 restoreThreadLocalData (*hash< auto > data)
 called after handleRequest() with any data returned from saveThreadData() More...
 
*hash< auto > saveThreadLocalData ()
 called before handleRequest() More...
 
 setPersistent (bool p=True)
 called externally to notify the handler that the connection will be persistent
 

Public Attributes

string url_root
 root part of URL for matching requests
 
- Public Attributes inherited from HttpServer::AbstractHttpRequestHandler
*AbstractAuthenticator auth
 the optional AbstractAuthenticator for requests to this handler
 
bool decompress = True
 if POSTed data should be decompressed automatically if there is content-encoding
 
bool decompress_to_string = True
 if automatically decompressed POSTed data should be converted to a string More...
 
const NotificationThreadKey = "_AHRH_pc"
 thread-local key string for notification callbacks
 
const PersistenceThreadKey = "_AHRH_p"
 thread-local key string for the persistent flag
 
bool stream
 if the handler supports streaming requests/responses with chunked data
 
timeout timeout_ms = HttpServer::DefaultTimeout
 send and receive socket timeout in milliseconds
 

Additional Inherited Members

- Static Public Member Methods inherited from HttpServer::AbstractHttpRequestHandler
static data decodeBody (string content_encoding, binary body, *string string_encoding)
 decodes a message body with content-encoding
 
static binary encodeBody (string content_encoding, data body)
 encodes a message body with content-encoding
 
static *string getLogMessage (hash< auto > cx, hash api, reference params, *reference< string > args)
 helper method for handling log messages More...
 
static hash< HttpResponseInfomake200 (hash< auto > hdr, InputStream chunked_body)
 creates a hash for an HTTP 200 OK error response with the response message body from an input stream
 
static hash< HttpResponseInfomake200 (hash< auto > hdr, string fmt)
 creates a hash for an HTTP 200 OK error response with the response message body as a string
 
static hash< HttpResponseInfomake200 (InputStream chunked_body)
 creates a hash for an HTTP 200 OK error response with the response message body from an input stream
 
static hash< HttpResponseInfomake200 (string fmt)
 creates a hash for an HTTP 200 OK error response with the response message body as a string
 
static hash< HttpResponseInfomake400 (hash< auto > hdr, string fmt)
 creates a hash for an HTTP 400 error response with the response message body as a string
 
static hash< HttpResponseInfomake400 (string fmt)
 creates a hash for an HTTP 400 error response with the response message body as a string
 
static hash< HttpResponseInfomake500 (hash< auto > hdr, string fmt)
 creates a hash for an HTTP 500 error response with the response message body as a string
 
static hash< HttpResponseInfomake500 (string fmt)
 creates a hash for an HTTP 500 error response with the response message body as a string
 
static hash< HttpResponseInfomake501 (hash< auto > hdr, string fmt)
 creates a hash for an HTTP 501 error response with the response message body as a string
 
static hash< HttpResponseInfomake501 (string fmt)
 creates a hash for an HTTP 501 error response with the response message body as a string
 
static hash< HttpResponseInfomakeResponse (hash< auto > hdr, int code, string fmt)
 creates a hash for an HTTP response with the response code and the response message body as a formatted string
 
static hash< HttpResponseInfomakeResponse (int code, *data body, *hash< auto > hdr)
 creates a hash for an HTTP response with the response code and a literal response message body
 
static hash< HttpResponseInfomakeResponse (int code, *InputStream chunked_body, *hash< auto > hdr)
 creates a hash for an HTTP response with the response code and a response message body from an input stream More...
 
static hash< HttpResponseInfomakeResponse (int code, string fmt)
 creates a hash for an HTTP response with the response code and the response message body as a formatted string
 
static hash< HttpResponseInforedirect (hash< auto > cx, hash< auto > request_hdr, string path, int status_code=301, *hash< auto > response_hdr)
 generates a redirect hash for the given path
 
static staticNotificationCleanup ()
 removes the thread-local data key in case the object is destroyed in another thread
 
static staticPersistenceCleanup ()
 removes the thread-local data key in case the object is destroyed in another thread
 
- Private Member Methods inherited from HttpServer::AbstractHttpRequestHandler
nothing checkPersistent (hash< auto > cx, hash< auto > hdr)
 this method will throw an exception if a persistent connection cannot be granted
 
AbstractStreamRequest getStreamRequestImpl (HttpListenerInterface listener, Socket s, hash< auto > cx, hash< auto > hdr, *data body)
 returns the AbstractStreamRequest object for handling chunked requests
 

Detailed Description

abstract class for HTTP request handlers anchored at a specific URL

Member Function Documentation

◆ constructor()

HttpServer::AbstractUrlHandler::constructor ( string  n_url_root,
*AbstractAuthenticator  auth 
)

creates the object based on the URL root and optional authenticator

Parameters
n_url_rootthe root part of the URL path without the leading "/"
auththe authentication object to use to authenticate connections (see AbstractAuthenticator); if no AbstractAuthenticator object is passed, then by default no authentication will be required

◆ getRelativePath()

string HttpServer::AbstractUrlHandler::getRelativePath ( string  path)

returns the relative path anchored from the url_root if possible

URI query arguments are stripped off, if the url_root cannot be matched then the path is returned with URI query arguments removed