[SOLVED] QNetworkAccessManager failing to retrieve data
-
Edited: Environment
Qt 4.7.4
KDE 4.7.1
Kubuntu 11.10I'm trying to pull back data from an url ("http://whirlpool.net.au":http://whirlpool.net.au), code as follows:
@
void KWhirlMonView::refresh()
{
QUrl url("http://whirlpool.net.au");
QNetworkRequest request(url);reply = qnam.get(request); connect(reply, SIGNAL(finished()), this, SLOT(httpFinished())); connect(reply, SIGNAL(readyRead()), this, SLOT(httpReadyRead())); connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(updateDataReadProgress(qint64,qint64))); connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(httpError(QNetworkReply::NetworkError)));
}
void KWhirlMonView::httpFinished()
{
kDebug() << "httpFinished - " << reply->errorString() << endl;
QByteArray data = reply->readAll();
QString s(data);
kDebug() << s << endl;
}void KWhirlMonView::httpError ( QNetworkReply::NetworkError code )
{
kDebug() << code << endl;
}@
the error slot always triggers with error code 203
The error String is "Error downloading http://whirlpool.net.au - server replied: Not found"
The data returned is : "<html><body>The requested resource could not be found.</body></html>"I can open the site fine with any browser and other windows SDK code (delphi + indy httpClient)
Any suggestions?
Thanks - Lindsay
-
I don't understand your point - thats just the forum software mangling the link I posted. You'll note the actual code I posted has the correct url - "http://whirlpool.net.au":http://whirlpool.net.au
-
Sorry, it is just a problem in your positing.
In the first line of your post you have attached immediately after the link a ')' and a ','.
If one tries to follow this link, one will get an error message. This is a problem of devnet.
Unfortunately, it does not address your actual problem.[Edit] Someone has fixed it in the mean time.
-
I should add - tried the code with "http://google.com":http://google.com, that worked fine (retrieved the content)
-
Have you tried to use Wireshark or tcpdump to spot the difference between the two requests?
What does qDebug() << reply->request()->url() say?Probably the site has some restrictions based on user agent or access pattern to block your request. At least they have some sense of "humor":http://whirlpool.net.au/index.php ;-)
-
Thanks Lucas, that definietly got me on the right track - once I set the user agent to "Mozilla ..." etc I started getting info back. Now having problems with the cgi parameters but I'll sort that.
Might have a word with the site admin about the UA requirement - doesn't seem neccessary ...