【问题标题】:Get http code request获取http代码请求
【发布时间】:2016-03-07 20:07:13
【问题描述】:

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

【问题讨论】:

    标签: qt qnetworkrequest


    【解决方案1】:

    QNetworkRequest 不能在没有 QNetworkAccessManager 的情况下使用,它负责向 Web 服务器发出实际请求。 QNetworkAccessManager 实例完成的每个请求都会返回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;
        }
    }
    

    查看官方文档。它解释了所有细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多