获取http代码请求

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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;
    

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

QNetworkRequest QNetworkAccessManager

【讨论】:

以上是关于获取http代码请求的主要内容,如果未能解决你的问题,请参考以下文章

java 通过HTTP请求模拟登陆,获取不到cookie,高手帮忙看一下,代码如下

Android中基于Http请求获取数据基础

Swift Alamofire HTTP 获取请求

在 HTTP 请求 c# 的授权标头中获取签名的 OAuth 请求

获取 HTTP/1.1 400 错误请求

http请求如何修改请求头?