U использовать QNetworkRequest для отправки сообщения. Как я могу получить HTTP-код запроса? Я отправляю запрос на сервер, на сервере я вижу свой запрос, но мне нужно проверить http-код, какой сервер вернется в приложение.Получить http-код запроса
1
A
ответ
3
QNetworkRequest
не может использоваться без QNetworkAccessManager
, который отвечает за принятие фактического запроса на веб-сервер. Каждый запрос, выполненный экземпляром 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;
}
}
Посмотрите на официальной документации. Он объясняет все подробно.