QtWebKitは、Webページの読み込みに失敗したときにQWebPage::loadFinished (false)
を呼び出しますが、失敗した理由については手がかりを与えません。QTWebKitがページの読み込みに失敗した場合の詳細なエラーメッセージの表示方法
HTTP応答コードなどの詳細なエラーメッセージを受け取るにはどうすればよいですか?
QtWebKitは、Webページの読み込みに失敗したときにQWebPage::loadFinished (false)
を呼び出しますが、失敗した理由については手がかりを与えません。QTWebKitがページの読み込みに失敗した場合の詳細なエラーメッセージの表示方法
HTTP応答コードなどの詳細なエラーメッセージを受け取るにはどうすればよいですか?
それは、障害に関する詳細情報を取得するカップルの方法があり判明:あなたが詳細を探している場合
page.onResourceRequested = function (resource) {
log('resource requested: ' + resource.url);
}
page.onResourceReceived = function (resource) {
log('resource received: ' + resource.status + ' ' + resource.statusText + ' ' +
resource.contentType + ' ' + resource.url);
}
:
は、ページ上のonResourceRequested
とonResourceReceived
コールバックを実装しますそれでもPhantomJS内部のパッチを適用する必要があります。 QTWebKitのErrorExtensionを実装するために、(WebPage.cppの)CustomPageオブジェクトを更新します。ここでは、それはありません追加できるコードがあることである:
protected:
bool supportsExtension(Extension extension) const {
if (extension == QWebPage::ErrorPageExtension)
{
return true;
}
return false;
}
bool extension(Extension extension, const ExtensionOption *option = 0, ExtensionReturn *output = 0)
{
if (extension != QWebPage::ErrorPageExtension)
return false;
ErrorPageExtensionOption *errorOption = (ErrorPageExtensionOption*) option;
std::cerr << "Error loading " << qPrintable(errorOption->url.toString()) << std::endl;
if(errorOption->domain == QWebPage::QtNetwork)
std::cerr << "Network error (" << errorOption->error << "): ";
else if(errorOption->domain == QWebPage::Http)
std::cerr << "HTTP error (" << errorOption->error << "): ";
else if(errorOption->domain == QWebPage::WebKit)
std::cerr << "WebKit error (" << errorOption->error << "): ";
std::cerr << qPrintable(errorOption->errorString) << std::endl;
return false;
}
これはあなたのエラー情報のほとんどを提供しますが、あなたはまだ詳細を得ることなくonLoadFinished(success=false)
イベントを取得することができます。私の研究から、それらの主な原因は、がキャンセルされました。ロードリクエスト。 QTWebKitはキャンセルの失敗通知を送信しますが、詳細は報告しません。
また、[1] [1] [HTTPステータスコードの確認方法]を参照してください。http://stackoverflow.com/questions/4330274/qtwebkit-how-to-check-http-status-code –