在谷歌瀏覽器,當向服務器發出請求時發生錯誤,谷歌瀏覽器嘗試一個新的請求,請參閱日誌Wireshark的: 請求或AccessManager QT
注意:這第二次嘗試也在Firefox和InternetExplorer中出現。 注意:WebInspector只出現在請求中,換句話說:常規瀏覽器在多次或一段時間內嘗試新請求。
我在QT
開發一個完整的瀏覽器,並意識到如果請求失敗「QWebView」具有相同的行爲谷歌瀏覽器。
如何才能重新實現QNetWorkRequest/QNetWorkAccessManager
以像常規瀏覽器一樣工作?
請幫助我。
myWebPage *myWP = new myWebPage();
myWP->setForwardUnsupportedContent(true);
myWP->setNetworkAccessManager(m_network);
ui->myWebView->setPage(myWP);
if(q!=true) {
settings = QWebSettings::globalSettings();
settings->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled,true);
settings->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls,true);
settings->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled,true);
settings->setAttribute(QWebSettings::LocalContentCanAccessFileUrls,true);
settings->setAttribute(QWebSettings::LocalStorageEnabled,true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows,true);
settings->setAttribute(QWebSettings::JavascriptCanCloseWindows,true);
settings->setAttribute(QWebSettings::JavascriptEnabled,true);
settings->setAttribute(QWebSettings::PluginsEnabled,true);
settings->setAttribute(QWebSettings::JavaEnabled,false);//Disable java
settings->setAttribute(QWebSettings::DeveloperExtrasEnabled,true);
settings->setAttribute(QWebSettings::AutoLoadImages, true);
settings->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
settings->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true);
settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanAccessClipboard, false);
settings->setAttribute(QWebSettings::ScrollAnimatorEnabled, true);
settings->setAttribute(QWebSettings::PrintElementBackgrounds, false);
settings->setOfflineWebApplicationCachePath(QString(localStorage+"/appcache"));
settings->enablePersistentStorage(QString(localStorage+"/persistent"));
settings->setOfflineStoragePath(QString(localStorage+"/offlinestorage"));
settings->setLocalStoragePath(QString(localStorage+"/storage"));
settings->setIconDatabasePath(QString(localStorage+"/icons"));
settings->setMaximumPagesInCache(99999);
settings->setObjectCacheCapacities(0,99999,99999);
settings->setOfflineWebApplicationCacheQuota(5*1024*1024);
settings->setOfflineStorageDefaultQuota(5*1024*1024);
}
connect(ui->myWebView->page(), SIGNAL(downloadRequested(QNetworkRequest)), this, SLOT(Download(QNetworkRequest)));
connect(ui->myWebView->page(), SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(unsupportedToDownload(QNetworkReply*)));
connect(ui->myWebView->page(), SIGNAL(printRequested(QWebFrame*)), this, SLOT(printFrame(QWebFrame*)));
的Qt和Chrome都使用[WebKit](http://en.wikipedia.org/wiki/WebKit)作爲底層代碼引擎。這可能解釋了類似的行爲。 – Phlucious
的渲染代碼是一樣的,沒有請求。 –