我试图找出在qt中执行get请求时出了什么问题。我的networkmanager
上装有以下插槽:
connect(mgr,SIGNAL(finished(QNetworkReply*)),this,SLOT(requestFinished(QNetworkReply*)));
connect(mgr, SIGNAL(error(QNetworkReply::NetworkError)),
this, SLOT(slotError(QNetworkReply::NetworkError)));
完成的请求就像:
void FirebaseInteractor::requestFinished(QNetworkReply *rep)
{
QVariant statusCode = rep->attribute( QNetworkRequest::HttpStatusCodeAttribute );
int status = statusCode.toInt();
if ( status != 200 )
{
QString reason = rep->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
qDebug() << "Pushnotification Request failed : " <<reason;
}
else{
qDebug() << "Pushnotification has been send: ";
}
if ( !statusCode.isValid() )
{
QString status = statusCode.toString(); // or status_code.toInt();
qDebug() << "Failing " << status;
int code = statusCode.toInt();
qDebug() << "Pushnotification Request failed invalid status code." << QString::number(code);
QString reason = rep->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
qDebug() << "reason " << reason;
return;
}
}
但是状态始终为空Failing
,并且打印了reason
,但之后没有任何值(我原以为原因是超时,401等)。>]
我也尝试过:
int status = statusCode.toInt(); if ( status != 200 ) { QString reason = rep->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString(); qDebug() << "Pushnotification Request failed : " <<reason; } else{ qDebug() << "Pushnotification has been send: "; } But all reasons/codes are empty. I also added: void FirebaseInteractor::slotError(QNetworkReply::NetworkError error) { qDebug() << "slotError" << error; }
但未调用。
我如何找出问题所在?
我试图找出在qt中执行get请求时出了什么问题。我在网络管理器上附加了以下插槽:connect(mgr,SIGNAL(finished(QNetworkReply *)),this,SLOT(requestFinished(...
您可以直接使用以下方法得到错误:
qDebug() << reply->error();