Important: Please read the Qt Code of Conduct -

QNetworkReply doesn't emit the signal finished()

  • Hello. I have this code:

    @MyYoutubeClass::MyYoutubeClass(QObject *parent) :
    QObject(parent) {

    QNetworkAccessManager netAM;
    webView = new QWebView();
    std::cout << "access manager created" << std::endl;
    QNetworkRequest request;
    std::cout << "request created" << std::endl;
    QString searchString = "christmas";
    request.setUrl(QUrl("" + searchString + "&oq=" + searchString + "&gs_l=youtube.3..0l10.517.964.0.1875."));
    std::cout << "request url set" << std::endl;
    QNetworkReply *reply = netAM.get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(processReply()));

    For some reason, the signal is not emited. Anyone knows why?

    Thank you in advance.

    If I put the reply url in a webview it shows it correctly. However I need to parse the reply content not just show it.

    Qt 4.8.4 MinGW (untill I get the trial for Qt5 ^^)
    Windows 7

  • Hi,

    what is the result of isFinished() on your reply (before the connect)?

  • false... but why? because it loads in the WebView...

  • Ok. I wanted to see if the reply wasn't finished before your connect (so the signal would be emitted before being connected to your slot). Maybe you can try "QNetworkAccessManager::finished()": instead of QNetworkReply signal. I am not sure it will change anything, but I have no other idea :( .

Log in to reply