我想使用QNetworkAccessManager打開一個網頁 - 對於某些網頁,它工作正常 - 而對於其他網站則不會。我嘗試設置一個真正的瀏覽器用戶代理,但它仍然不起作用,例如,http://www.erepublik.com。下面的代碼:QNetworkAccessManager問題
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(replyFinished(QNetworkReply*)));
QNetworkRequest *request = new QNetworkRequest(QUrl("http://www.erepublik.com"));
request->setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); "
"en-US; rv:1.9.0.1) Gecko/2008070206 Firefox/3.0.1");
request->setRawHeader("charset", "utf-8");
request->setRawHeader("Connection", "keep-alive");
manager->get(*request);
...
void MainWindow::replyFinished(QNetworkReply *reply)
{
QString data = reply->readAll();
qDebug() << data;
}
的數據如下:
<html><head><meta http-equiv="refresh" content="0;url=http://www.erepublik.com/en"/></head></html><html><head><meta http-equiv="refresh" content="0;url=http://www.erepublik.com/en"/></head></html>
現在,什麼是竊聽我這個作品像http://www.hardwarebase.net網站(數據返回正常的HTML源代碼),但它不適用於eRepublik。
對於那些想知道我確切想要做什麼的人 - 我想從eRepublik首頁獲取國家人口數量。
任何想法爲什麼會發生這種情況?提前致謝。
謝謝你,工作。既然你比Goz快,我選擇了你的答案。 QNetworkAccessManager能自動處理這種重定向嗎? – Ahmed
您可以連接到QNetworkAccessManager的metaDataChanged信號並檢查狀態碼是否爲HTTP重定向代碼 –
謝謝,卡米爾! – Ahmed