I have kind of a n00b problem, I can't seem to make HTTP GET requests from my Qt Code...
Here is the code supposed to work:
void MainWindow::requestShowPage(){
QNetworkAccessManager *manager = new QNetworkAccessManager(this);
connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(requestReceived(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl("http://google.com")));
}
void MainWindow::requestReceived(QNetworkReply* reply){
QString replyText;
replyText.fromAscii(reply->readAll());
ui->txt_debug->appendPlainText(replyText);
}
But the problem is that this just doesn't work: In requestReceived(QNetworkReply* reply)
, replyText
seems empty, reply->error()
returns 0
and reply->errorString()
returns "Unknown Error". I don't really know what to do right now...
Any idea?
If
reply->error()
= 0, it means the request was successful. In fact, your code seems right to me, and the only thing I would do differently is to read the data. Try with this:There is obviously a redirection, which is not considered as an error.
You should run a new request with the redirection url provided in the reply attributes until you get the real page:
You should also record where you are redirected or count the number of redirections, to avoid never ending loops.