बाहर कर देता है आप QNetworkAccessManager अपने QWebPage के साथ जुड़े पर नजर रखने और एक finished(...) संकेत के लिए प्रतीक्षा करने की जरूरत है। फिर आप HTTP प्रतिक्रिया का निरीक्षण कर सकते हैं और QNetworkRequest::HttpStatusCodeAttribute
विशेषता के लिए अपने स्टेटस कोड की जांच कर सकते हैं।
void MyClass::initWebPage()
{
myQWebPage = new QWebPage(this);
connect(
myQWebPage->networkAccessManager(), SIGNAL(finished(QNetworkReply *)),
this, SLOT(httpResponseFinished(QNetworkReply *))
);
}
void MyClass::httpResponseFinished(QNetworkReply * reply)
{
switch (reply->error())
{
case QNetworkReply::NoError:
// No error
return;
case QNetworkReply::ContentNotFoundError:
// 404 Not found
failedUrl = reply->request.url();
httpStatus = reply->attribute(
QNetworkRequest::HttpStatusCodeAttribute).toInt();
httpStatusMessage = reply->attribute(
QNetworkRequest::HttpReasonPhraseAttribute).toByteArray();
break;
}
}
अधिक NetworkErrors, उदा से चुनने के लिए कर रहे हैं:
यह बेहतर है कोड में विस्तार से बताया टीसीपी त्रुटियों या HTTP 401 के लिए।
Fwiw, एक भी HTTP स्थिति कोड सीधे QNetworkReply :: गुण और QNetworkRequest :: HttpStatusCodeAttribute, देखें http साथ क्वेरी कर सकते हैं:। //doc.qt .nokia.com/4.7-स्नैपशॉट/qnetworkreply.html # विशेषता। – Macke
एक चीज जो आप नहीं चाहें वह इस वेब को प्रत्येक पृष्ठ के लिए एक वेब पेज पर ट्रिगर करना है जो लोड करने में विफल रहता है; उदाहरण के लिए छवियों और जावास्क्रिप्ट। आदर्श रूप से आप शायद केवल तभी देखभाल करते हैं जब मुख्य पृष्ठ स्वयं लोड नहीं होता है। –