Poco::Net

class HTTPMessage

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, HTTPServerResponse, HTTPServerResponseImpl, HTTPServerRequest, HTTPResponse, HTTPServerRequestImpl

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, getFieldLimit, has, hasToken, operator =, operator [], quote, read, set, setFieldLimit, size, splitElements, splitParameters, swap, write

Constructors

HTTPMessage protected

HTTPMessage();

Creates the HTTPMessage with version HTTP/1.0.

HTTPMessage protected

HTTPMessage(
    const std::string & version
);

Creates the HTTPMessage and sets the version.

HTTPMessage protected

HTTPMessage(
    const HTTPMessage & other
);

Copy constructor.

Destructor

~HTTPMessage protected virtual

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 inline

const std::string & getVersion() const;

Returns the HTTP version for this message.

hasContentLength inline

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 = protected

HTTPMessage & operator = (
    const HTTPMessage & other
);

Assignment operator.

Variables

CHUNKED_TRANSFER_ENCODING static

static const std::string CHUNKED_TRANSFER_ENCODING;

CONNECTION static

static const std::string CONNECTION;

CONNECTION_CLOSE static

static const std::string CONNECTION_CLOSE;

CONNECTION_KEEP_ALIVE static

static const std::string CONNECTION_KEEP_ALIVE;

CONTENT_LENGTH static

static const std::string CONTENT_LENGTH;

CONTENT_TYPE static

static const std::string CONTENT_TYPE;

EMPTY static

static const std::string EMPTY;

HTTP_1_0 static

static const std::string HTTP_1_0;

HTTP_1_1 static

static const std::string HTTP_1_1;

IDENTITY_TRANSFER_ENCODING static

static const std::string IDENTITY_TRANSFER_ENCODING;

PROXY_CONNECTION static

static const std::string PROXY_CONNECTION;

TRANSFER_ENCODING static

static const std::string TRANSFER_ENCODING;

UNKNOWN_CONTENT_LENGTH static

static const int UNKNOWN_CONTENT_LENGTH;

UNKNOWN_CONTENT_TYPE static

static const std::string UNKNOWN_CONTENT_TYPE;