Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Cannot get data from HTTP request
Forum Updated to NodeBB v4.3 + New Features

Cannot get data from HTTP request

Scheduled Pinned Locked Moved Unsolved General and Desktop
22 Posts 5 Posters 2.7k Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M mrjj
    15 Oct 2019, 21:18

    @t0msk said in Cannot get data from HTTP request:

    QNetworkReply::finished,

    Well you are mixing the classes/signals.
    The reply's signals is
    https://doc.qt.io/qt-5/qnetworkreply.html#finished
    and have no QNetworkReply* parameter.

    so i think you mean

    connect(
            Manager, &QNetworkAccessManager::finished,
            this, &Manager::replyFinished
        );
    
    T Offline
    T Offline
    t0msk
    wrote on 15 Oct 2019, 21:24 last edited by
    #13

    @mrjj said in Cannot get data from HTTP request:

    @t0msk said in Cannot get data from HTTP request:

    QNetworkReply::finished,

    Well you are mixing the classes.
    The reply signals is
    https://doc.qt.io/qt-5/qnetworkreply.html#finished
    and have no QNetworkReply* parameter.

    so i think you mean

    connect(
            Manager, &QNetworkAccessManager::finished,
            this, &Manager::replyFinished
        );
    

    Thank you,
    so now I have:

        QSslConfiguration config = QSslConfiguration::defaultConfiguration();
        config.setProtocol(QSsl::TlsV1_2);
        QNetworkAccessManager *manager = new QNetworkAccessManager();
        QNetworkRequest request;
    
    
        request.setHeader(QNetworkRequest::ServerHeader, "application/json");
        request.setSslConfiguration(config);
        request.setUrl(QUrl("https://www.archlinux.org/packages/search/json/?q=dolphin"));
    
        QNetworkReply *reply = manager->get(request);
    
        connect(
            manager, &QNetworkAccessManager::finished,
            this, &Manager::replyFinished
        );
    
        connect(
            manager, &QNetworkAccessManager::sslErrors,
            this, &Manager::replyFinished
        );
    
    void Manager::replyFinished(QNetworkReply *reply)
    {
        qDebug() << reply->readAll();
    
        QString ha = reply->readAll();
    
        QString he;
    }
    

    Still no output and no error :/

    Student who loves C/C++

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 15 Oct 2019, 21:27 last edited by
      #14

      Hi
      Its a bit odd to connect all to the same slot but lets leave it for now.

      now its time to
      check your openSSL support !

      what does
      qDebug() << "i can use HTTPS:" << QSslSocket::supportsSsl();
      qDebug() << "version" << QSslSocket::sslLibraryBuildVersionString();

      say ?

      T 1 Reply Last reply 15 Oct 2019, 21:30
      1
      • M mrjj
        15 Oct 2019, 21:27

        Hi
        Its a bit odd to connect all to the same slot but lets leave it for now.

        now its time to
        check your openSSL support !

        what does
        qDebug() << "i can use HTTPS:" << QSslSocket::supportsSsl();
        qDebug() << "version" << QSslSocket::sslLibraryBuildVersionString();

        say ?

        T Offline
        T Offline
        t0msk
        wrote on 15 Oct 2019, 21:30 last edited by
        #15

        @mrjj
        It says:

        i can use HTTPS: true
        version "OpenSSL 1.1.1c  28 May 2019"
        

        Student who loves C/C++

        1 Reply Last reply
        1
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 15 Oct 2019, 21:32 last edited by
          #16

          What version of Qt are you using ?

          One more thing: do these connections prior to calling get.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          T 1 Reply Last reply 15 Oct 2019, 21:35
          0
          • S SGaist
            15 Oct 2019, 21:32

            What version of Qt are you using ?

            One more thing: do these connections prior to calling get.

            T Offline
            T Offline
            t0msk
            wrote on 15 Oct 2019, 21:35 last edited by
            #17

            @SGaist Qt version is 5.13.1

            Student who loves C/C++

            1 Reply Last reply
            0
            • T Offline
              T Offline
              t0msk
              wrote on 16 Oct 2019, 20:20 last edited by
              #18

              So where can be problem? :/

              Student who loves C/C++

              1 Reply Last reply
              0
              • S Offline
                S Offline
                SGaist
                Lifetime Qt Champion
                wrote on 16 Oct 2019, 20:44 last edited by SGaist
                #19

                Did you move the connection statements as I suggested ?

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                T 1 Reply Last reply 17 Oct 2019, 17:13
                0
                • S SGaist
                  16 Oct 2019, 20:44

                  Did you move the connection statements as I suggested ?

                  T Offline
                  T Offline
                  t0msk
                  wrote on 17 Oct 2019, 17:13 last edited by
                  #20

                  @SGaist I dont know what do you mean

                  Student who loves C/C++

                  J 1 Reply Last reply 17 Oct 2019, 17:42
                  0
                  • T t0msk
                    17 Oct 2019, 17:13

                    @SGaist I dont know what do you mean

                    J Offline
                    J Offline
                    JonB
                    wrote on 17 Oct 2019, 17:42 last edited by JonB
                    #21

                    @t0msk

                    @SGaist wrote

                    Did you move the connection statements as I suggested ?

                    In your code you show:

                        QNetworkReply *reply = manager->get(request);
                    
                        connect(
                            manager, &QNetworkAccessManager::finished,
                            this, &Manager::replyFinished
                        );
                    
                        connect(
                            manager, &QNetworkAccessManager::sslErrors,
                            this, &Manager::replyFinished
                        );
                    

                    You are calling the manager->get(request) before you have connected the signals/slots on manager, which may/will be too late. He is asking you to change over anything like that to

                        connect(
                            manager, &QNetworkAccessManager::finished,
                            this, &Manager::replyFinished
                        );
                    
                        connect(
                            manager, &QNetworkAccessManager::sslErrors,
                            this, &Manager::replyFinished
                        );
                    
                        QNetworkReply *reply = manager->get(request);
                    

                    so you move the connection statements to before the get(request). So we get to see finished or quite possibly errors from the request. In general, you need to set up signals/slots as soon as you create an object (manager here), before you call anything which could raise a signal.

                    1 Reply Last reply
                    4
                    • T Offline
                      T Offline
                      t0msk
                      wrote on 19 Oct 2019, 13:18 last edited by
                      #22

                      Changed it like:

                          connect(
                              manager, &QNetworkAccessManager::finished,
                              this, &Manager::replyFinished
                          );
                      
                          connect(
                              manager, &QNetworkAccessManager::sslErrors,
                              this, &Manager::replyFinished
                          );
                      
                          QNetworkReply *reply = manager->get(request);
                      

                      and still doesn't work, no error, no reply.

                      Student who loves C/C++

                      1 Reply Last reply
                      0

                      22/22

                      19 Oct 2019, 13:18

                      • Login

                      • Login or register to search.
                      22 out of 22
                      • First post
                        22/22
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved