2016-03-07 3 views
1

U использовать QNetworkRequest для отправки сообщения. Как я могу получить HTTP-код запроса? Я отправляю запрос на сервер, на сервере я вижу свой запрос, но мне нужно проверить http-код, какой сервер вернется в приложение.Получить http-код запроса

ответ

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

Посмотрите на официальной документации. Он объясняет все подробно.

 Смежные вопросы

  • Нет связанных вопросов^_^