获取http代码请求

时间:2016-03-07 20:07:14

标签: qt qnetworkrequest

您使用QNetworkRequest发送帖子请求。如何获取请求的HTTP代码?我发送一些请求到服务器,在服务器上我可以看到我的请求,但我必须检查http代码哪个服务器将返回到应用程序。

1 个答案:

答案 0 :(得分:6)

如果没有负责向Web服务器发出实际请求的QNetworkRequest,则无法使用

QNetworkAccessManagerQNetworkAccessManager实例完成的每个请求都会返回QNetworkReply,您应该从服务器中查找状态代码。它位于QNetworkReply实例标题内。

请求是异步的,因此可以在触发信号时捕获。

最简单的例子是:

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

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

然后在插槽实现中:

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;
    }
}

查看官方文档。它详细解释了所有内容。