Get http code request
Asked Answered
S

1

8

U use QNetworkRequest to send post request. How can I get HTTP code of request? I send some request to server, on server I can see my request, but i have to check http code which server will return to application.

Suggestibility answered 7/3, 2016 at 20:7 Comment(0)
E
14

QNetworkRequest can not be used without QNetworkAccessManager that's responsible for making the actual request to the web server. Each request done by QNetworkAccessManager instance returns QNetworkReply where you should look for the status code from the server. It's located inside the QNetworkReply instance headers.

The request is asynchronous so it can be catch when signal is triggered.

Easiest example would be:

QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
    this, SLOT(replyFinished(QNetworkReply*)));

manager->get(QNetworkRequest(QUrl("http://qt-project.org")));

Then in the slot implementation:

void replyFinished(QNetworkReply *resp){
    QVariant status_code = resp->attribute(QNetworkRequest::HttpStatusCodeAttribute);
    status_code.is_valid(){
        // Print or catch the status code
        QString status = status_code.toString(); // or status_code.toInt();
        qDebug() << status;
    }
}

Have a look on the official documentation. It explains all in details.

Elbrus answered 7/3, 2016 at 20:49 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.