Library: Net
Package: HTTP
Header: Poco/Net/HTTPMessage.h
Description
The base class for HTTPRequest and HTTPResponse.
Defines the common properties of all HTTP messages. These are version, content length, content type and transfer encoding.
Inheritance
Direct Base Classes: MessageHeader
All Base Classes: MessageHeader, NameValueCollection
Known Derived Classes: HTTPRequest, HTTPResponse, HTTPServerRequest, HTTPServerRequestImpl, HTTPServerResponse, HTTPServerResponseImpl
Member Summary
Member Functions: getChunkedTransferEncoding, getContentLength, getContentLength64, getContentType, getKeepAlive, getTransferEncoding, getVersion, hasContentLength, operator =, setChunkedTransferEncoding, setContentLength, setContentLength64, setContentType, setKeepAlive, setTransferEncoding, setVersion
Inherited Functions: add, begin, clear, decodeRFC2047, decodeWord, empty, end, erase, find, get, getAutoDecode, getDecoded, getFieldLimit, getNameLengthLimit, getValueLengthLimit, has, hasToken, operator =, operator [], quote, read, set, setAutoDecode, setFieldLimit, setNameLengthLimit, setValueLengthLimit, size, splitElements, splitParameters, swap, write
Constructors
HTTPMessage
HTTPMessage();
Creates the HTTPMessage with version HTTP/1.0.
HTTPMessage
HTTPMessage(
const std::string & version
);
Creates the HTTPMessage and sets the version.
HTTPMessage
HTTPMessage(
const HTTPMessage & other
);
Copy constructor.
Destructor
~HTTPMessage
virtual ~HTTPMessage();
Destroys the HTTPMessage.
Member Functions
getChunkedTransferEncoding
bool getChunkedTransferEncoding() const;
Returns true if the Transfer-Encoding header is set and its value is chunked.
getContentLength
std::streamsize getContentLength() const;
Returns the content length for this message, which may be UNKNOWN_CONTENT_LENGTH if no Content-Length header is present.
getContentLength64
Poco::Int64 getContentLength64() const;
Returns the content length for this message, which may be UNKNOWN_CONTENT_LENGTH if no Content-Length header is present.
In contrast to getContentLength(), this method always returns a 64-bit integer for content length.
getContentType
const std::string & getContentType() const;
Returns the content type for this message.
If no Content-Type header is present, returns UNKNOWN_CONTENT_TYPE.
getKeepAlive
bool getKeepAlive() const;
Returns true if
- the message has a Connection header field and its value is "Keep-Alive"
- the message is a HTTP/1.1 message and not Connection header is set
Returns false otherwise.
getTransferEncoding
const std::string & getTransferEncoding() const;
Returns the transfer encoding used for this message.
Normally, this is the value of the Transfer-Encoding header field. If no such field is present, returns IDENTITY_TRANSFER_CODING.
getVersion
const std::string & getVersion() const;
Returns the HTTP version for this message.
hasContentLength
bool hasContentLength() const;
Returns true iff a Content-Length header is present.
setChunkedTransferEncoding
void setChunkedTransferEncoding(
bool flag
);
If flag is true, sets the Transfer-Encoding header to chunked. Otherwise, removes the Transfer-Encoding header.
setContentLength
void setContentLength(
std::streamsize length
);
Sets the Content-Length header.
If length is UNKNOWN_CONTENT_LENGTH, removes the Content-Length header.
setContentLength64
void setContentLength64(
Poco::Int64 length
);
Sets the Content-Length header.
If length is UNKNOWN_CONTENT_LENGTH, removes the Content-Length header.
In contrast to setContentLength(), this method takes a 64-bit integer as content length.
setContentType
void setContentType(
const std::string & mediaType
);
Sets the content type for this message.
Specify UNKNOWN_CONTENT_TYPE to remove the Content-Type header.
setContentType
void setContentType(
const MediaType & mediaType
);
Sets the content type for this message.
setKeepAlive
void setKeepAlive(
bool keepAlive
);
Sets the value of the Connection header field.
The value is set to "Keep-Alive" if keepAlive is true, or to "Close" otherwise.
setTransferEncoding
void setTransferEncoding(
const std::string & transferEncoding
);
Sets the transfer encoding for this message.
The value should be either IDENTITY_TRANSFER_CODING or CHUNKED_TRANSFER_CODING.
setVersion
void setVersion(
const std::string & version
);
Sets the HTTP version for this message.
operator =
HTTPMessage & operator = (
const HTTPMessage & other
);
Assignment operator.
Variables
CHUNKED_TRANSFER_ENCODING
static const std::string CHUNKED_TRANSFER_ENCODING;
CONNECTION
static const std::string CONNECTION;
CONNECTION_CLOSE
static const std::string CONNECTION_CLOSE;
CONNECTION_KEEP_ALIVE
static const std::string CONNECTION_KEEP_ALIVE;
CONTENT_LENGTH
static const std::string CONTENT_LENGTH;
CONTENT_TYPE
static const std::string CONTENT_TYPE;
EMPTY
static const std::string EMPTY;
HTTP_1_0
static const std::string HTTP_1_0;
HTTP_1_1
static const std::string HTTP_1_1;
IDENTITY_TRANSFER_ENCODING
static const std::string IDENTITY_TRANSFER_ENCODING;
PROXY_CONNECTION
static const std::string PROXY_CONNECTION;
TRANSFER_ENCODING
static const std::string TRANSFER_ENCODING;
UNKNOWN_CONTENT_LENGTH
static const int UNKNOWN_CONTENT_LENGTH;
UNKNOWN_CONTENT_TYPE
static const std::string UNKNOWN_CONTENT_TYPE;