获取http代码请求
Get http code request
U 使用 QNetworkRequest 发送 post 请求。如何获取请求的 HTTP 代码?我向服务器发送了一些请求,在服务器上我可以看到我的请求,但我必须检查哪个服务器 return 到应用程序的 http 代码。
QNetworkRequest
不能在没有 QNetworkAccessManager
的情况下使用,后者负责向 Web 服务器发出实际请求。每个请求由 QNetworkAccessManager
实例 returns QNetworkReply
完成,您应该在其中从服务器查找状态代码。它位于 QNetworkReply
实例 headers.
内
请求是异步的,因此可以在触发信号时捕获。
最简单的例子是:
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;
}
}
看看官方文档。它解释了所有细节。
U 使用 QNetworkRequest 发送 post 请求。如何获取请求的 HTTP 代码?我向服务器发送了一些请求,在服务器上我可以看到我的请求,但我必须检查哪个服务器 return 到应用程序的 http 代码。
QNetworkRequest
不能在没有 QNetworkAccessManager
的情况下使用,后者负责向 Web 服务器发出实际请求。每个请求由 QNetworkAccessManager
实例 returns QNetworkReply
完成,您应该在其中从服务器查找状态代码。它位于 QNetworkReply
实例 headers.
请求是异步的,因此可以在触发信号时捕获。
最简单的例子是:
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;
}
}
看看官方文档。它解释了所有细节。