- Qt 6.7
- Qt HTTP Server
- C++ Classes
- QtHttpServer (Technical Preview)
- QHttpServerResponder
- Qt 6.7.0 Reference Documentation

# QHttpServerResponder Class

API for sending replies from an HTTP server. More...

Header: | #include <QHttpServerResponder>
CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
qmake: | QT += httpserver
Since: | Qt 6.4
Status: | Technical Preview

- List of all members, including inherited members

## Public Types

| HeaderList
enum class | StatusCode { Continue, SwitchingProtocols, Processing, Ok, Created, …, NetworkConnectTimeoutError }

## Public Functions

| QHttpServerResponder(QHttpServerResponder &&other)
| ~QHttpServerResponder()
void | sendResponse(const QHttpServerResponse &response)
void | write(QIODevice *data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(QIODevice *data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(const QJsonDocument &document, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(const QJsonDocument &document, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(const QByteArray &data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(const QByteArray &data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | write(QHttpServerResponder::StatusCode status = StatusCode::Ok)
void | writeBody(const char *body, qint64 size)
void | writeBody(const char *body)
void | writeBody(const QByteArray &body)
void | writeHeader(const QByteArray &header, const QByteArray &value)
void | writeHeaders(QHttpServerResponder::HeaderList headers)
void | writeStatusLine(QHttpServerResponder::StatusCode status = StatusCode::Ok)

## Detailed Description

Provides functions for writing back to an HTTP client with overloads for serializing JSON objects. It also has support for writing HTTP headers and status code.

## Member Type Documentation

### `[alias]` QHttpServerResponder::HeaderList

Type alias for std::initializer_list<std::pair<QByteArray, QByteArray>>

### enum class QHttpServerResponder::StatusCode

HTTP status codes

Constant | Value
--- | ---
`QHttpServerResponder::StatusCode::Continue` | `100`
`QHttpServerResponder::StatusCode::SwitchingProtocols` | `101`
`QHttpServerResponder::StatusCode::Processing` | `102`
`QHttpServerResponder::StatusCode::Ok` | `200`
`QHttpServerResponder::StatusCode::Created` | `201`
`QHttpServerResponder::StatusCode::Accepted` | `202`
`QHttpServerResponder::StatusCode::NonAuthoritativeInformation` | `203`
`QHttpServerResponder::StatusCode::NoContent` | `204`
`QHttpServerResponder::StatusCode::ResetContent` | `205`
`QHttpServerResponder::StatusCode::PartialContent` | `206`
`QHttpServerResponder::StatusCode::MultiStatus` | `207`
`QHttpServerResponder::StatusCode::AlreadyReported` | `208`
`QHttpServerResponder::StatusCode::IMUsed` | `226`
`QHttpServerResponder::StatusCode::MultipleChoices` | `300`
`QHttpServerResponder::StatusCode::MovedPermanently` | `301`
`QHttpServerResponder::StatusCode::Found` | `302`
`QHttpServerResponder::StatusCode::SeeOther` | `303`
`QHttpServerResponder::StatusCode::NotModified` | `304`
`QHttpServerResponder::StatusCode::UseProxy` | `305`
`QHttpServerResponder::StatusCode::TemporaryRedirect` | `307`
`QHttpServerResponder::StatusCode::PermanentRedirect` | `308`
`QHttpServerResponder::StatusCode::BadRequest` | `400`
`QHttpServerResponder::StatusCode::Unauthorized` | `401`
`QHttpServerResponder::StatusCode::PaymentRequired` | `402`
`QHttpServerResponder::StatusCode::Forbidden` | `403`
`QHttpServerResponder::StatusCode::NotFound` | `404`
`QHttpServerResponder::StatusCode::MethodNotAllowed` | `405`
`QHttpServerResponder::StatusCode::NotAcceptable` | `406`
`QHttpServerResponder::StatusCode::ProxyAuthenticationRequired` | `407`
`QHttpServerResponder::StatusCode::RequestTimeout` | `408`
`QHttpServerResponder::StatusCode::Conflict` | `409`
`QHttpServerResponder::StatusCode::Gone` | `410`
`QHttpServerResponder::StatusCode::LengthRequired` | `411`
`QHttpServerResponder::StatusCode::PreconditionFailed` | `412`
`QHttpServerResponder::StatusCode::PayloadTooLarge` | `413`
`QHttpServerResponder::StatusCode::UriTooLong` | `414`
`QHttpServerResponder::StatusCode::UnsupportedMediaType` | `415`
`QHttpServerResponder::StatusCode::RequestRangeNotSatisfiable` | `416`
`QHttpServerResponder::StatusCode::ExpectationFailed` | `417`
`QHttpServerResponder::StatusCode::ImATeapot` | `418`
`QHttpServerResponder::StatusCode::MisdirectedRequest` | `421`
`QHttpServerResponder::StatusCode::UnprocessableEntity` | `422`
`QHttpServerResponder::StatusCode::Locked` | `423`
`QHttpServerResponder::StatusCode::FailedDependency` | `424`
`QHttpServerResponder::StatusCode::UpgradeRequired` | `426`
`QHttpServerResponder::StatusCode::PreconditionRequired` | `428`
`QHttpServerResponder::StatusCode::TooManyRequests` | `429`
`QHttpServerResponder::StatusCode::RequestHeaderFieldsTooLarge` | `431`
`QHttpServerResponder::StatusCode::UnavailableForLegalReasons` | `451`
`QHttpServerResponder::StatusCode::InternalServerError` | `500`
`QHttpServerResponder::StatusCode::NotImplemented` | `501`
`QHttpServerResponder::StatusCode::BadGateway` | `502`
`QHttpServerResponder::StatusCode::ServiceUnavailable` | `503`
`QHttpServerResponder::StatusCode::GatewayTimeout` | `504`
`QHttpServerResponder::StatusCode::HttpVersionNotSupported` | `505`
`QHttpServerResponder::StatusCode::VariantAlsoNegotiates` | `506`
`QHttpServerResponder::StatusCode::InsufficientStorage` | `507`
`QHttpServerResponder::StatusCode::LoopDetected` | `508`
`QHttpServerResponder::StatusCode::NotExtended` | `510`
`QHttpServerResponder::StatusCode::NetworkAuthenticationRequired` | `511`
`QHttpServerResponder::StatusCode::NetworkConnectTimeoutError` | `599`

## Member Function Documentation

### QHttpServerResponder::QHttpServerResponder(QHttpServerResponder &&other)

Move-constructs a QHttpServerResponder instance, making it point at the same object that other was pointing to.

### `[noexcept]` QHttpServerResponder::~QHttpServerResponder()

Destroys a QHttpServerResponder.

### `[since 6.5]` void QHttpServerResponder::sendResponse(const QHttpServerResponse &response)

Sends a HTTP response to the client.

This function was introduced in Qt 6.5.

### void QHttpServerResponder::write(QIODevice *data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status and HTTP headers headers. The I/O device data provides the body of the response. If data is sequential, the body of the message is sent in chunks: otherwise, the function assumes all the content is available and sends it all at once but the read is done in chunks.

Note: This function takes the ownership of data.

### void QHttpServerResponder::write(QIODevice *data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status and a MIME type mimeType. The I/O device data provides the body of the response. If data is sequential, the body of the message is sent in chunks: otherwise, the function assumes all the content is available and sends it all at once but the read is done in chunks.

Note: This function takes the ownership of data.

### void QHttpServerResponder::write(const QJsonDocument &document, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status, JSON document document and HTTP headers headers.

Note: This function sets HTTP Content-Type header as "application/json".

### void QHttpServerResponder::write(const QJsonDocument &document, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status, and JSON document document.

Note: This function sets HTTP Content-Type header as "application/json".

### void QHttpServerResponder::write(const QByteArray &data, QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status, HTTP Headers headers and a body data.

Note: This function sets HTTP Content-Length header.

### void QHttpServerResponder::write(const QByteArray &data, const QByteArray &mimeType, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status, a MIME type mimeType and a body data.

### void QHttpServerResponder::write(QHttpServerResponder::HeaderList headers, QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status and HTTP Headers headers.

### void QHttpServerResponder::write(QHttpServerResponder::StatusCode status = StatusCode::Ok)

Answers a request with an HTTP status code status.

Note: This function sets HTTP Content-Type header as "application/x-empty".

### void QHttpServerResponder::writeBody(const char *body, qint64 size)

This function writes HTTP body body with size size.

### void QHttpServerResponder::writeBody(const char *body)

This function writes HTTP body body.

### void QHttpServerResponder::writeBody(const QByteArray &body)

This function writes HTTP body body.

### void QHttpServerResponder::writeHeader(const QByteArray &header, const QByteArray &value)

This function writes an HTTP header header with value.

### void QHttpServerResponder::writeHeaders(QHttpServerResponder::HeaderList headers)

This function writes HTTP headers headers.

### void QHttpServerResponder::writeStatusLine(QHttpServerResponder::StatusCode status = StatusCode::Ok)

This function writes HTTP status line with an HTTP status code status.