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. How to get/parse pastepin raw content using qt5 ?
Forum Updated to NodeBB v4.3 + New Features

How to get/parse pastepin raw content using qt5 ?

Scheduled Pinned Locked Moved Unsolved General and Desktop
13 Posts 4 Posters 2.5k 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.
  • Chris KawaC Chris Kawa

    You need to be a little more specific than that.

    You can get content from the web via QNetworkAccessManager.
    What do you mean by parse? Into what? And what do you want to do with it? "Whatever" can mean anything and there's no one way to do "anything" ;)

    H Offline
    H Offline
    Hanoosh
    wrote on last edited by Chris Kawa
    #3

    @Chris-Kawa , i want to be able to parse the content into a Qstring , the example below is not working : ( PS. i need somthing very simple and console only no need for gui.)

    class MyClass : public QObject
    {
     Q_OBJECT
    public:
        MyClass();
        void fetch();
    
    public slots:
        void replyFinished(QNetworkReply*);
    
    private:
        QNetworkAccessManager* m_manager;
    };
    
    
    MyClass::MyClass()
    {
        m_manager = new QNetworkAccessManager(this);
    
        connect(m_manager, SIGNAL(finished(QNetworkReply*)),
             this, SLOT(replyFinished(QNetworkReply*)));
    
    }
    
    void MyClass::fetch()
    {
        m_manager->get(QNetworkRequest(QUrl("http://stackoverflow.com")));
    }
    
    void MyClass::replyFinished(QNetworkReply* pReply)
    {
    
        QByteArray data=pReply->readAll();
        QString str(data);
    
        //process str any way you like!
    
    }
    
    mrjjM 1 Reply Last reply
    0
    • Chris KawaC Offline
      Chris KawaC Offline
      Chris Kawa
      Lifetime Qt Champion
      wrote on last edited by
      #4

      Oh, ok. So just for the record - that's not parsing. Parsing is a process of analyzing some input and transforming it into another form. what you seem to want is just fetching some data.

      The code you posted looks ok. For networking and signal/slot connections to work you need a running event loop (exec()). I'm assuming you don't have one as this is common mistake when writing a console app.
      Can you show your main() ?

      Btw. please surround code with ```, not html tags.

      1 Reply Last reply
      1
      • H Hanoosh

        @Chris-Kawa , i want to be able to parse the content into a Qstring , the example below is not working : ( PS. i need somthing very simple and console only no need for gui.)

        class MyClass : public QObject
        {
         Q_OBJECT
        public:
            MyClass();
            void fetch();
        
        public slots:
            void replyFinished(QNetworkReply*);
        
        private:
            QNetworkAccessManager* m_manager;
        };
        
        
        MyClass::MyClass()
        {
            m_manager = new QNetworkAccessManager(this);
        
            connect(m_manager, SIGNAL(finished(QNetworkReply*)),
                 this, SLOT(replyFinished(QNetworkReply*)));
        
        }
        
        void MyClass::fetch()
        {
            m_manager->get(QNetworkRequest(QUrl("http://stackoverflow.com")));
        }
        
        void MyClass::replyFinished(QNetworkReply* pReply)
        {
        
            QByteArray data=pReply->readAll();
            QString str(data);
        
            //process str any way you like!
        
        }
        
        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #5

        @Hanoosh
        Hi
        Your code does work.
        please try
        https://www.dropbox.com/s/9gkycyliz0h6cyp/netreader.zip?dl=0

        H 1 Reply Last reply
        1
        • mrjjM mrjj

          @Hanoosh
          Hi
          Your code does work.
          please try
          https://www.dropbox.com/s/9gkycyliz0h6cyp/netreader.zip?dl=0

          H Offline
          H Offline
          Hanoosh
          wrote on last edited by
          #6

          @mrjj Thanks it works, is there anyway to make it simpler like in only one .cpp file with no header file?

          mrjjM 1 Reply Last reply
          0
          • H Hanoosh

            @mrjj Thanks it works, is there anyway to make it simpler like in only one .cpp file with no header file?

            mrjjM Offline
            mrjjM Offline
            mrjj
            Lifetime Qt Champion
            wrote on last edited by mrjj
            #7

            @Hanoosh
            Hi
            no. there must be .h file.
            the tool that make signal and slot works, called moc.exe, only reads .h files.
            So class MyClass : public QObject must be in a .h file.

            H 1 Reply Last reply
            1
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #8

              Hi,

              In fact yes, it's possible, you have to include the moc file at the end of the .cpp file to force moc to parse the .cpp file. It's used for Qt's unit tests. Note that it's not the usual way to do it. @mrjj's solution is the good clean classic.

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

              1 Reply Last reply
              2
              • mrjjM mrjj

                @Hanoosh
                Hi
                no. there must be .h file.
                the tool that make signal and slot works, called moc.exe, only reads .h files.
                So class MyClass : public QObject must be in a .h file.

                H Offline
                H Offline
                Hanoosh
                wrote on last edited by
                #9

                @mrjj Thanks for the info and help, how to make it support ssl link?

                mrjjM 1 Reply Last reply
                0
                • H Hanoosh

                  @mrjj Thanks for the info and help, how to make it support ssl link?

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  @Hanoosh
                  Hi
                  Do you mean HTTPS ?

                  H 1 Reply Last reply
                  0
                  • mrjjM mrjj

                    @Hanoosh
                    Hi
                    Do you mean HTTPS ?

                    H Offline
                    H Offline
                    Hanoosh
                    wrote on last edited by Hanoosh
                    #11

                    @mrjj yes, thanks

                    im getting this with https link:

                    QSslSocket: cannot call unresolved function SSL_CTX_new
                    QSslSocket: cannot call unresolved function SSL_library_init
                    QSslSocket: cannot call unresolved function ERR_get_error
                    mrjjM 1 Reply Last reply
                    0
                    • H Hanoosh

                      @mrjj yes, thanks

                      im getting this with https link:

                      QSslSocket: cannot call unresolved function SSL_CTX_new
                      QSslSocket: cannot call unresolved function SSL_library_init
                      QSslSocket: cannot call unresolved function ERR_get_error
                      mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by mrjj
                      #12

                      @Hanoosh
                      I think you need to set something with QSslConfiguration
                      and install OpenSSL binaries
                      https://forum.qt.io/topic/9376/solved-qnetworkaccessmanager-https-code-2-error-qnetworkreply-remotehostclosederror
                      (code in top)
                      request.setSslConfiguration(QSslConfiguration::defaultConfiguration());

                      for binaries
                      http://slproweb.com/products/Win32OpenSSL.html

                      This is purely guessing so you might want to wait to see if someone knows exactly.

                      .

                      H 1 Reply Last reply
                      0
                      • mrjjM mrjj

                        @Hanoosh
                        I think you need to set something with QSslConfiguration
                        and install OpenSSL binaries
                        https://forum.qt.io/topic/9376/solved-qnetworkaccessmanager-https-code-2-error-qnetworkreply-remotehostclosederror
                        (code in top)
                        request.setSslConfiguration(QSslConfiguration::defaultConfiguration());

                        for binaries
                        http://slproweb.com/products/Win32OpenSSL.html

                        This is purely guessing so you might want to wait to see if someone knows exactly.

                        .

                        H Offline
                        H Offline
                        Hanoosh
                        wrote on last edited by
                        #13

                        @mrjj Thanks, i've found the code below and i'm trying to implement in my code:

                        QNetworkAccessManager qnam;
                        QSslConfiguration sslConfiguration(QSslConfiguration::defaultConfiguration());
                        SslConfiguration.setProtocol(QSsl::SslV3);
                        QNetworkRequest req;
                        req.setSslConfiguration(sslConfiguration);
                        req.setUrl(QUrl("https://www.address.tld/"));
                        
                        QNetworkReply *rep = qnam->get(req);
                        1 Reply Last reply
                        0

                        • Login

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