×
Namespaces

Variants
Actions

Creating an HTTP network request in Qt

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Tested with
Devices(s): Nokia 5800 XpressMusic
CompatibilityArticle
Keywords: QNetworkAccessManager, QUrl, QNetworkReply, QNetworkRequest
Created: tepaa (04 Jun 2009)
Last edited: hamishwillee (02 Oct 2013)

Contents

Overview

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.


Header

#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>
 
QNetworkAccessManager* nam;


Source

Create QNetworkAccessManager and start listening for its finished signal.

nam = new QNetworkAccessManager(this);
QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
this, SLOT(finishedSlot(QNetworkReply*)));

HTTP GET request:

QUrl url("http://www.forum.nokia.wiki");
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 =
reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
// Or the target URL if it was a redirect:
QVariant redirectionTargetUrl =
reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
// 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
QImageReader imageReader(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
else
{
// handle errors here
}
 
// We receive ownership of the reply object
// and therefore need to handle deletion.
delete reply;
}


See also

Postconditions

An HTTP response is received.

This page was last modified on 2 October 2013, at 13:02.
1424 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×