Creating an HTTP network request in Qt
This code snippet demonstrates how to use QNetworkAccessManager for sending an HTTP request.
Note: In order to use this code, you need to have Qt installed on your platform.
Create QNetworkAccessManager and start listening for its finished signal.
HTTP GET request:
QNetworkReply* reply = nam->get(QNetworkRequest(url));
// NOTE: Store QNetworkReply pointer (maybe into caller).
// When this HTTP request is finished you will receive this same
// QNetworkReply as response parameter.
// By the QNetworkReply pointer you can identify request and response.
When the QNetworkAccessManager::finished signal is received, the HTTP request is completed.
void MyHttpEngine::finishedSlot(QNetworkReply* reply)
// Reading attributes of the reply
// e.g. the HTTP status code
QVariant statusCodeV =
// Or the target URL if it was a redirect:
QVariant redirectionTargetUrl =
// see CS001432 on how to handle this
// no error received?
if (reply->error() == QNetworkReply::NoError)
// read data from QNetworkReply here
// Example 1: Creating QImage from the reply
QImage pic = imageReader.read();
// Example 2: Reading bytes form the reply
QByteArray bytes = reply.readAll(); // bytes
QString string(bytes); // string
// Some http error received
// handle errors here
// We receive ownership of the reply object
// and therefore need to handle deletion.
- For more information about QNetworkAccessManager, see QNetworkAccessManager Class Reference
- Handling an HTTP redirect with QNetworkAccessManager
An HTTP response is received.