| Home | Libraries | People | FAQ | More

#### http::request_serializer

A serializer for HTTP/1 requests.

##### Synopsis

Defined in header `<boost/beast/http/serializer.hpp>`

    template<
        class Body,
        class Fields = fields>
    using request_serializer = serializer< true, Body, Fields >;

##### Types

Name | Description
--- | ---
value_type | The type of message this serializer uses.

##### Member Functions

Name | Description
--- | ---
consume | Consume buffer octets in the serialization.
get | Returns the message being serialized.
is_done | Return `true` if serialization is complete.
is_header_done | Return `true` if serialization of the header is complete.
limit | Returns the serialized buffer size limit. — Set the serialized buffer size limit.
next | Returns the next set of buffers in the serialization.
operator= | Assignment.
serializer | Move Constructor. — Copy Constructor. — Constructor.
split | Returns `true` if we will pause after writing the complete header. — Set whether the header and body are written separately.
writer_impl | Provides low-level access to the associated BodyWriter

An object of this type is used to serialize a complete HTTP message into a sequence of octets. To use this class, construct an instance with the message to be serialized. The implementation will automatically perform chunk encoding if the contents of the message indicate that chunk encoding is required.

Chunked output produced by the serializer never contains chunk extensions or trailers, and the location of chunk boundaries is not specified. If callers require chunk extensions, trailers, or control over the exact contents of each chunk they should use the serializer to write just the message header, and then assume control over serializing the chunked payload by using the chunk buffer sequence types `chunk_body`, `chunk_crlf`, `chunk_header`, and `chunk_last`.

##### Remarks

Moving or copying the serializer after the first call to `serializer::next` results in undefined behavior. Try to heap-allocate the serializer object if you need to move the serializer between multiple async operations (for example, between a call to `async_write_header` and `async_write`).

##### Template Parameters

Type | Description
--- | ---
`isRequest` | `true` if the message is a request.
`Body` | The body type of the message.
`Fields` | The type of fields in the message.