QNetworkAccessManagerを使用してWebページを開こうとしています。一部のページでは正常に動作しますが、他のページでは動作しません。私は実際のブラウザのユーザーエージェントを設定しようとしましたが、それでもまだ動作しません。例えば、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