join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join::HttpRequest Class Reference

HTTP request. More...

#include <httpmessage.hpp>

Inheritance diagram for join::HttpRequest:
Collaboration diagram for join::HttpRequest:

Public Types

using ParameterMap = std::map <std::string, std::string>
 
- Public Types inherited from join::HttpMessage
using HeaderMap = std::map <std::string, std::string, details::lessNoCase>
 

Public Member Functions

 HttpRequest ()
 create the HttpRequest instance by default.
 
 HttpRequest (HttpMethod method)
 create the HttpRequest instance by default.
 
 HttpRequest (const HttpRequest &other)
 create the HttpRequest instance by copy.
 
HttpRequestoperator= (const HttpRequest &other)
 assign the HttpRequest instance by copy.
 
 HttpRequest (HttpRequest &&other)
 create the HttpRequest instance by move.
 
HttpRequestoperator= (HttpRequest &&other)
 assign the HttpRequest instance by move.
 
virtual ~HttpRequest ()=default
 destroy the HttpRequest instance.
 
HttpMethod method () const
 get request method.
 
std::string methodString () const
 get request method string.
 
void method (HttpMethod meth)
 set request method (default GET).
 
const std::string & path () const
 get path.
 
void path (const std::string &p)
 set path.
 
bool hasParameter (const std::string &name) const
 checks if there is a parameter with the specified name.
 
std::string parameter (const std::string &name) const
 get a parameter by name.
 
void parameter (const std::string &name, const std::string &val)
 add query parameter to the HTTP request.
 
void parameter (const ParameterMap::value_type &param)
 add query parameter to the HTTP request.
 
const ParameterMapparameters () const
 get query parameters map.
 
void parameters (const ParameterMap &params)
 add query parameters to the HTTP request.
 
std::string dumpParameters () const
 dump parameters.
 
std::string query () const
 get query.
 
std::string urn () const
 get URN.
 
std::string host () const
 get host.
 
std::string auth () const
 get autorization type.
 
std::string credentials () const
 get credentials.
 
virtual void clear () override
 clear HTTP message.
 
virtual int writeHeaders (std::ostream &out) const override
 write HTTP headers to the given output stream.
 
- Public Member Functions inherited from join::HttpMessage
 HttpMessage ()
 create the HttpMessage instance.
 
 HttpMessage (const HttpMessage &other)
 create the HttpMessage instance by copy.
 
HttpMessageoperator= (const HttpMessage &other)
 assign the HttpMessage instance by copy.
 
 HttpMessage (HttpMessage &&other)
 create the HttpMessage instance by move.
 
HttpMessageoperator= (HttpMessage &&other)
 assign the HttpMessage instance by move.
 
virtual ~HttpMessage ()=default
 destroy the HttpMessage instance.
 
const std::string & version () const
 get HTTP version.
 
void version (const std::string &v)
 set HTTP version (default "HTTP/1.1").
 
bool hasHeader (const std::string &name) const
 checks if there is a header with the specified name.
 
std::string header (const std::string &name) const
 get header by name.
 
void header (const std::string &name, const std::string &val)
 add header to the HTTP request.
 
void header (const HeaderMap::value_type &h)
 add header to the HTTP request.
 
const HeaderMapheaders () const
 get headers map.
 
void headers (const HeaderMap &heads)
 add headers to the HTTP request.
 
std::string dumpHeaders () const
 dump headers.
 
size_t contentLength () const
 get content length.
 
virtual int readHeaders (std::istream &in)
 read HTTP header from the given input stream.
 

Protected Member Functions

virtual int parseFirstLine (const std::string &line) override
 parse first line.
 
std::string & decodeUrl (std::string &url)
 decode url (ex. %20 ==> ' ').
 
std::string & normalize (std::string &path)
 produce a normalized path (collapse duplicated separator and remove dot segment).
 
void store (const std::string &query)
 store parameters received in request.
 
- Protected Member Functions inherited from join::HttpMessage
virtual int parseHeader (const std::string &head)
 parse HTTP header.
 

Protected Attributes

HttpMethod _method = Get
 HTTP method.
 
std::string _path
 HTTP path;.
 
ParameterMap _parameters
 HTTP query parameters.
 
- Protected Attributes inherited from join::HttpMessage
std::string _version
 HTTP version.
 
HeaderMap _headers
 HTTP headers.
 

Additional Inherited Members

- Static Protected Attributes inherited from join::HttpMessage
static const std::streamsize _maxHeaderLen = 2048
 HTTP max header size.
 

Detailed Description

HTTP request.

Member Typedef Documentation

◆ ParameterMap

using join::HttpRequest::ParameterMap = std::map <std::string, std::string>

Constructor & Destructor Documentation

◆ HttpRequest() [1/4]

HttpRequest::HttpRequest ( )

create the HttpRequest instance by default.

◆ HttpRequest() [2/4]

HttpRequest::HttpRequest ( HttpMethod method)

create the HttpRequest instance by default.

Parameters
methodrequest method.

◆ HttpRequest() [3/4]

HttpRequest::HttpRequest ( const HttpRequest & other)

create the HttpRequest instance by copy.

Parameters
otherrequest to copy.

◆ HttpRequest() [4/4]

HttpRequest::HttpRequest ( HttpRequest && other)

create the HttpRequest instance by move.

Parameters
otherrequest to move.

◆ ~HttpRequest()

virtual join::HttpRequest::~HttpRequest ( )
virtualdefault

destroy the HttpRequest instance.

Member Function Documentation

◆ auth()

std::string HttpRequest::auth ( ) const

get autorization type.

Returns
autorization type.

◆ clear()

void HttpRequest::clear ( )
overridevirtual

clear HTTP message.

Reimplemented from join::HttpMessage.

◆ credentials()

std::string HttpRequest::credentials ( ) const

get credentials.

Returns
credentials.

◆ decodeUrl()

std::string & HttpRequest::decodeUrl ( std::string & url)
protected

decode url (ex. %20 ==> ' ').

Parameters
urlurl to decode.
Returns
a reference to the url object.

◆ dumpParameters()

std::string HttpRequest::dumpParameters ( ) const

dump parameters.

Returns
parameters.

◆ hasParameter()

bool HttpRequest::hasParameter ( const std::string & name) const

checks if there is a parameter with the specified name.

Parameters
namename of the parameter to search for.
Returns
true of there is such a parameter, false otherwise.

◆ host()

std::string HttpRequest::host ( ) const

get host.

Returns
host.

◆ method() [1/2]

HttpMethod HttpRequest::method ( ) const

get request method.

Returns
request method.

◆ method() [2/2]

void HttpRequest::method ( HttpMethod meth)

set request method (default GET).

Parameters
methHTTP method.

◆ methodString()

std::string HttpRequest::methodString ( ) const

get request method string.

Returns
request method string.

◆ normalize()

std::string & HttpRequest::normalize ( std::string & path)
protected

produce a normalized path (collapse duplicated separator and remove dot segment).

Parameters
pathpath to normalize.
Returns
normalized path.

◆ operator=() [1/2]

HttpRequest & HttpRequest::operator= ( const HttpRequest & other)

assign the HttpRequest instance by copy.

Parameters
otherrequest to copy.
Returns
a reference of the current object.

◆ operator=() [2/2]

HttpRequest & HttpRequest::operator= ( HttpRequest && other)

assign the HttpRequest instance by move.

Parameters
otherrequest to move.
Returns
a reference of the current object.

◆ parameter() [1/3]

void HttpRequest::parameter ( const ParameterMap::value_type & param)

add query parameter to the HTTP request.

Parameters
paramparameter.

◆ parameter() [2/3]

std::string HttpRequest::parameter ( const std::string & name) const

get a parameter by name.

Parameters
nameparameter name.
Returns
parameter value.

◆ parameter() [3/3]

void HttpRequest::parameter ( const std::string & name,
const std::string & val )

add query parameter to the HTTP request.

Parameters
nameparameter name.
valparameter value.

◆ parameters() [1/2]

const HttpRequest::ParameterMap & HttpRequest::parameters ( ) const

get query parameters map.

Returns
query parameters map.

◆ parameters() [2/2]

void HttpRequest::parameters ( const ParameterMap & params)

add query parameters to the HTTP request.

Parameters
paramsparameters.

◆ parseFirstLine()

int HttpRequest::parseFirstLine ( const std::string & line)
overrideprotectedvirtual

parse first line.

Parameters
linefirst line to parse.
Returns
0 on success, -1 on failure.

Implements join::HttpMessage.

◆ path() [1/2]

const std::string & HttpRequest::path ( ) const

get path.

Returns
path.

◆ path() [2/2]

void HttpRequest::path ( const std::string & p)

set path.

Parameters
ppath.

◆ query()

std::string HttpRequest::query ( ) const

get query.

Returns
query.

◆ store()

void HttpRequest::store ( const std::string & query)
protected

store parameters received in request.

Parameters
queryparameters received in request.

◆ urn()

std::string HttpRequest::urn ( ) const

get URN.

Returns
URN.

◆ writeHeaders()

int HttpRequest::writeHeaders ( std::ostream & out) const
overridevirtual

write HTTP headers to the given output stream.

Parameters
outoutput stream.
Returns
0 on success, -1 on failure.

Implements join::HttpMessage.

Member Data Documentation

◆ _method

HttpMethod join::HttpRequest::_method = Get
protected

HTTP method.

◆ _parameters

ParameterMap join::HttpRequest::_parameters
protected

HTTP query parameters.

◆ _path

std::string join::HttpRequest::_path
protected

HTTP path;.


The documentation for this class was generated from the following files: