cppmicroservices-httpservice - Man Page

Name

cppmicroservices-httpservice ā€” CppMicroServices Http Service API

These classes are the main API to the HttpService bundle

WARNING:

The Http Service API is not final and may be incomplete. It also may change between minor releases without backwards compatibility guarantees.

Httpservlet

class HttpServlet : public std::enable_shared_from_this<HttpServlet>

Subclassed by cppmicroservices::AbstractWebConsolePlugin

Public Functions

HttpServlet()

virtual void Init(ServletConfig const &config)

Called by the servlet container to indicate to a servlet that the servlet is being placed into service.

The servlet container calls the Init method exactly once after instantiating the servlet. The Init method must complete successfully before the servlet can receive any requests.

The servlet container cannot place the servlet into service if the Init method .INDENT 7.0

i.

Throws a ServletException

ii.

Does not return within a time period defined by the Web server

SEE ALSO:

UnavailableException

SEE ALSO:

GetServletConfig

Parameters

config -- a ServletConfig object containing the servlet's configuration and initialization parameters

Throws

ServletException -- if an exception has occurred that interferes with the servlet's normal operation

virtual void Destroy()

Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.

This method is only called once all threads within the servlet's service method have exited or after a timeout period has passed. After the servlet container calls this method, it will not call the service method again on this servlet.

This method gives the servlet an opportunity to clean up any resources that are being held (for example, memory, file handles, threads) and make sure that any persistent state is synchronized with the servlet's current state in memory.

ServletConfig GetServletConfig() const

Returns a ServletConfig object, which contains initialization and startup parameters for this servlet.

The ServletConfig object returned is the one passed to the Init method.

SEE ALSO:

Init

Returns

the ServletConfig object that initializes this servlet

virtual void Service(HttpServletRequest &request, HttpServletResponse &response)

std::shared_ptr<ServletContext> GetServletContext() const

virtual ~HttpServlet()

Public Static Attributes

static const std::string PROP_CONTEXT_ROOT

Protected Functions

virtual long long GetLastModified(HttpServletRequest &request)

virtual void DoGet(HttpServletRequest &request, HttpServletResponse &response)

virtual void DoHead(HttpServletRequest &request, HttpServletResponse &response)

virtual void DoDelete(HttpServletRequest &request, HttpServletResponse &response)

virtual void DoPost(HttpServletRequest &request, HttpServletResponse &response)

virtual void DoPut(HttpServletRequest &request, HttpServletResponse &response)

virtual void DoTrace(HttpServletRequest &request, HttpServletResponse &response)

std::unique_lock<std::mutex> Lock() const

Httpservletrequest

class HttpServletRequest

Public Functions

~HttpServletRequest()

HttpServletRequest(HttpServletRequest const &o)

HttpServletRequest &operator=(HttpServletRequest const &o)

std::shared_ptr<ServletContext> GetServletContext() const

Any GetAttribute(std::string const &name) const

std::vector<std::string> GetAttributeNames() const

std::size_t GetContentLength() const

std::string GetContentType() const

std::string GetLocalName() const

std::string GetRemoteHost() const

int GetLocalPort() const

int GetRemotePort() const

std::string GetScheme() const

std::string GetServerName() const

int GetServerPort() const

std::string GetProtocol() const

std::string GetContextPath() const

std::string GetPathInfo() const

std::string GetRequestUri() const

std::string GetRequestUrl() const

std::string GetServletPath() const

std::string GetQueryString() const

std::string GetHeader(std::string const &name) const

long long GetDateHeader(std::string const &name) const

std::vector<std::string> GetHeaderNames() const

std::vector<std::string> GetHeaders(std::string const &name) const

std::string GetMethod() const

std::vector<std::pair<std::string, float>> GetAcceptHeader() const

void RemoveAttribute(std::string const &name)

void SetAttribute(std::string const &name, Any const &value)

Httpservletresponse

class HttpServletResponse

Public Functions

virtual ~HttpServletResponse()

HttpServletResponse(HttpServletResponse const &o)

HttpServletResponse &operator=(HttpServletResponse const &o)

void FlushBuffer()

bool IsCommitted() const

std::size_t GetBufferSize() const

std::string GetCharacterEncoding() const

std::string GetContentType() const

std::ostream &GetOutputStream()

void Reset()

void ResetBuffer()

void SetBufferSize(std::size_t size)

void SetCharacterEncoding(std::string const &charset)

void SetContentLength(std::size_t size)

void SetContentType(std::string const &type)

void AddHeader(std::string const &name, std::string const &value)

void SetHeader(std::string const &name, std::string const &value)

void SetDateHeader(std::string const &name, long long date)

void AddIntHeader(std::string const &name, int value)

void SetIntHeader(std::string const &name, int value)

bool ContainsHeader(std::string const &name) const

std::string GetHeader(std::string const &name) const

int GetStatus() const

void SetStatus(int statusCode)

void SendError(int statusCode, std::string const &msg = std::string())

void SendRedirect(std::string const &location)

Public Static Attributes

static int const SC_CONTINUE

Status code (100) indicating the client can continue.

static int const SC_SWITCHING_PROTOCOLS

Status code (101) indicating the server is switching protocols according to Upgrade header.

static int const SC_OK

Status code (200) indicating the request succeeded normally.

static int const SC_CREATED

Status code (201) indicating the request succeeded and created a new resource on the server.

static int const SC_ACCEPTED

Status code (202) indicating that a request was accepted for processing, but was not completed.

static int const SC_NON_AUTHORITATIVE_INFORMATION

Status code (203) indicating that the meta information presented by the client did not originate from the server.

static int const SC_NO_CONTENT

Status code (204) indicating that the request succeeded but that there was no new information to return.

static int const SC_RESET_CONTENT

Status code (205) indicating that the agent SHOULD reset the document view which caused the request to be sent.

static int const SC_PARTIAL_CONTENT

Status code (206) indicating that the server has fulfilled the partial GET request for the resource.

static int const SC_MULTIPLE_CHOICES

Status code (300) indicating that the requested resource corresponds to any one of a set of representations, each with its own specific location.

static int const SC_MOVED_PERMANENTLY

Status code (301) indicating that the resource has permanently moved to a new location, and that future references should use a new URI with their requests.

static int const SC_FOUND

Status code (302) indicating that the resource reside temporarily under a different URI.

static int const SC_MOVED_TEMPORARILY

Status code (302) indicating that the resource has temporarily moved to another location, but that future references should still use the original URI to access the resource.

static int const SC_SEE_OTHER

Status code (303) indicating that the response to the request can be found under a different URI.

static int const SC_NOT_MODIFIED

Status code (304) indicating that a conditional GET operation found that the resource was available and not modified.

static int const SC_USE_PROXY

Status code (305) indicating that the requested resource MUST be accessed through the proxy given by the Location field.

static int const SC_TEMPORARY_REDIRECT

Status code (307) indicating that the requested resource resides temporarily under a different URI.

static int const SC_BAD_REQUEST

Status code (400) indicating the request sent by the client was syntactically incorrect.

static int const SC_UNAUTHORIZED

Status code (401) indicating that the request requires HTTP authentication.

static int const SC_PAYMENT_REQUIRED

Status code (402) reserved for future use.

static int const SC_FORBIDDEN

Status code (403) indicating the server understood the request but refused to fulfill it.

static int const SC_NOT_FOUND

Status code (404) indicating that the requested resource is not available.

static int const SC_METHOD_NOT_ALLOWED

Status code (405) indicating that the method specified in the Request-Line is not allowed for the resource identified by the Request-URI.

static int const SC_NOT_ACCEPTABLE

Status code (406) indicating that the resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request.

static int const SC_PROXY_AUTHENTICATION_REQUIRED

Status code (407) indicating that the client MUST first authenticate itself with the proxy.

static int const SC_REQUEST_TIMEOUT

Status code (408) indicating that the client did not produce a request within the time that the server was prepared to wait.

static int const SC_CONFLICT

Status code (409) indicating that the request could not be completed due to a conflict with the current state of the resource.

static int const SC_GONE

Status code (410) indicating that the resource is no longer available at the server and no forwarding address is known.

static int const SC_LENGTH_REQUIRED

Status code (411) indicating that the request cannot be handled without a defined Content-Length.

static int const SC_PRECONDITION_FAILED

Status code (412) indicating that the precondition given in one or more of the request-header fields evaluated to false when it was tested on the server.

static int const SC_REQUEST_ENTITY_TOO_LARGE

Status code (413) indicating that the server is refusing to process the request because the request entity is larger than the server is willing or able to process.

static int const SC_REQUEST_URI_TOO_LONG

Status code (414) indicating that the server is refusing to service the request because the Request-URI is longer than the server is willing to interpret.

static int const SC_UNSUPPORTED_MEDIA_TYPE

Status code (415) indicating that the server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.

static int const SC_REQUESTED_RANGE_NOT_SATISFIABLE

Status code (416) indicating that the server cannot serve the requested byte range.

static int const SC_EXPECTATION_FAILED

Status code (417) indicating that the server could not meet the expectation given in the Expect request header.

static int const SC_INTERNAL_SERVER_ERROR

Status code (500) indicating an error inside the HTTP server which prevented it from fulfilling the request.

static int const SC_NOT_IMPLEMENTED

Status code (501) indicating the HTTP server does not support the functionality needed to fulfill the request.

static int const SC_BAD_GATEWAY

Status code (502) indicating that the HTTP server received an invalid response from a server it consulted when acting as a proxy or gateway.

static int const SC_SERVICE_UNAVAILABLE

Status code (503) indicating that the HTTP server is temporarily overloaded, and unable to handle the request.

static int const SC_GATEWAY_TIMEOUT

Status code (504) indicating that the server did not receive a timely response from the upstream server while acting as a gateway or proxy.

static int const SC_HTTP_VERSION_NOT_SUPPORTED

Status code (505) indicating that the server does not support or refuses to support the HTTP protocol version that was used in the request message.

Protected Functions

HttpServletResponse(HttpServletResponsePrivate *d)

virtual std::streambuf *GetOutputStreamBuffer()

void SetOutputStreamBuffer(std::streambuf *sb)

Protected Attributes

HttpServletResponsePrivate *d

Servletconfig

class ServletConfig

A servlet configuration object used by a servlet container to pass information to a servlet during initialization.

Public Functions

ServletConfig()

ServletConfig(ServletConfig const &other)

ServletConfig &operator=(ServletConfig const &other)

virtual ~ServletConfig()

std::string GetServletName() const

Returns the name of this servlet instance.

The name may be provided via server administration, assigned in the web application deployment descriptor, or for an unregistered (and thus unnamed) servlet instance it will be the servlet's class name.

Returns

the name of the servlet instance

std::shared_ptr<ServletContext> GetServletContext() const

Returns a reference to the ServletContext in which the caller is executing.

SEE ALSO:

ServletContext

Returns

a ServletContext object, used by the caller to interact with its servlet container

Protected Functions

void SetServletName(std::string const &name)

void SetServletContext(std::shared_ptr<ServletContext> const &context)

Servletcontainer

class ServletContainer

Public Functions

ServletContainer(BundleContext bundleCtx, std::string const &contextPath = std::string())

~ServletContainer()

void SetContextPath(std::string const &contextPath)

std::string GetContextPath() const

void Start()

void Stop()

std::shared_ptr<ServletContext> GetContext(std::string const &uripath) const

std::string GetContextPath(ServletContext const *context) const

Servletcontext

class ServletContext

Public Functions

std::string GetContextPath() const

std::shared_ptr<ServletContext> GetContext(std::string const &uripath)

std::string GetMimeType(std::string const &file) const

Author

CppMicroServices Team

Info

Feb 05, 2025 3.8.5 C++ Micro Services