2016-03-07 1 views
1

U utiliser QNetworkRequest pour envoyer une demande de publication. Comment puis-je obtenir le code de requête HTTP? J'envoie une requête au serveur, sur le serveur je peux voir ma demande, mais je dois vérifier le code http quel serveur retournera à l'application.Obtenir la demande de code http

Répondre

3

QNetworkRequest ne peut pas être utilisé sans QNetworkAccessManager qui est responsable de faire la demande réelle au serveur Web. Chaque requête effectuée par l'instance QNetworkAccessManager renvoie QNetworkReply où vous devriez chercher le code d'état du serveur. Il est situé à l'intérieur des en-têtes d'instance QNetworkReply.

La requête est asynchrone et peut donc être bloquée lorsque le signal est déclenché.

exemple simple serait:

QNetworkAccessManager *manager = new QNetworkAccessManager(this); 
connect(manager, SIGNAL(finished(QNetworkReply*)), 
    this, SLOT(replyFinished(QNetworkReply*))); 

manager->get(QNetworkRequest(QUrl("http://qt-project.org"))); 

Puis, dans la mise en œuvre de la fente:

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

Jetez un oeil sur la documentation officielle. Il explique tout dans les détails.