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. Login to a website

Login to a website

Scheduled Pinned Locked Moved General and Desktop
loginwebsitewebki
10 Posts 3 Posters 6.8k Views
  • 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.
  • A Offline
    A Offline
    AliReza Beytari
    wrote on 30 May 2015, 11:16 last edited by
    #1

    Hey everyone.
    I'm gonna create a new program that can login to a website with keeping cookies and sessions. Please help me how can I do that ??!!!

    Thanks !!

    1 Reply Last reply
    0
    • L Offline
      L Offline
      LuGRU
      wrote on 30 May 2015, 13:24 last edited by
      #2

      Use i.e. QNetworkAccessManager class. Prepare request with loging URL, authentication, etc. and use either GET or POST to send to the WWW "login request".
      This all depends what authentication mechanism WWW that You want login into uses.

      1 Reply Last reply
      0
      • A Offline
        A Offline
        AliReza Beytari
        wrote on 30 May 2015, 14:44 last edited by
        #3

        We have to keep the cookies !!!
        How to do that ??!!

        J 1 Reply Last reply 30 May 2015, 16:29
        0
        • A AliReza Beytari
          30 May 2015, 14:44

          We have to keep the cookies !!!
          How to do that ??!!

          J Offline
          J Offline
          JKSH
          Moderators
          wrote on 30 May 2015, 16:29 last edited by
          #4

          Hi,

          @AliReza-Beytari said:

          We have to keep the cookies !!!
          How to do that ??!!

          Search Google for "Qt cookies"

          Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

          1 Reply Last reply
          0
          • L Offline
            L Offline
            LuGRU
            wrote on 31 May 2015, 09:35 last edited by
            #5

            QNetworkAccessManager + QNetworkCookieJar = QNetworkCookieJar * QNetworkAccessManager::cookieJar() const
            http://doc.qt.io/qt-5/qnetworkaccessmanager.html#cookieJar
            You can write application that will store (when app is closed), reuse, delete and edit cookies if You like.

            1 Reply Last reply
            1
            • A Offline
              A Offline
              AliReza Beytari
              wrote on 3 Jun 2015, 13:13 last edited by AliReza Beytari 6 Jun 2015, 12:36
              #6

              I use it like this :

              void MainWindow::on_pushButton_clicked()
              {
              // http://test.com/login.php --------> Login page
              // http://test.com/usercp.php --------> User control page [that need the cookies]

              QUrl serviceUrl = QUrl("http://test.com/login.php");
              QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
              connect(networkManager, SIGNAL(finished(QNetworkReply*)),
                      this, SLOT(serviceRequestFinished(QNetworkReply*)));
              
              QUrlQuery postData;
              postData.addQueryItem("username", "my_username");
              postData.addQueryItem("password", "my_password");
              
              QNetworkRequest request(serviceUrl);
              request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
              networkManager->post(request, postData.toString(QUrl::FullyEncoded).toUtf8());
              
              QNetworkCookieJar *cookies = networkManager->cookieJar();
              
              QEventLoop eventLoop;
              
              QNetworkAccessManager mgr;
              mgr.setCookieJar(cookies);
              QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
              
              QNetworkRequest req(QUrl("http://test.com/usercp.php"));
              QNetworkReply *reply = mgr.get(req);
              eventLoop.exec();
              
              if (reply->error() == QNetworkReply::NoError)
              {
                  QMessageBox::information(this, "Result", QString(reply->readAll()));
              }
              

              }

              void MainWindow::serviceRequestFinished(QNetworkReply *reply)
              {
              QMessageBox::information(this, "Result", QString(reply->readAll()));
              }

              But I couldn't send cookies !!!
              Please help !!!

              J 1 Reply Last reply 7 Jun 2015, 12:20
              0
              • A Offline
                A Offline
                AliReza Beytari
                wrote on 6 Jun 2015, 12:35 last edited by
                #7

                Nothing ?!!

                1 Reply Last reply
                0
                • A AliReza Beytari
                  3 Jun 2015, 13:13

                  I use it like this :

                  void MainWindow::on_pushButton_clicked()
                  {
                  // http://test.com/login.php --------> Login page
                  // http://test.com/usercp.php --------> User control page [that need the cookies]

                  QUrl serviceUrl = QUrl("http://test.com/login.php");
                  QNetworkAccessManager *networkManager = new QNetworkAccessManager(this);
                  connect(networkManager, SIGNAL(finished(QNetworkReply*)),
                          this, SLOT(serviceRequestFinished(QNetworkReply*)));
                  
                  QUrlQuery postData;
                  postData.addQueryItem("username", "my_username");
                  postData.addQueryItem("password", "my_password");
                  
                  QNetworkRequest request(serviceUrl);
                  request.setHeader(QNetworkRequest::ContentTypeHeader,"application/x-www-form-urlencoded");
                  networkManager->post(request, postData.toString(QUrl::FullyEncoded).toUtf8());
                  
                  QNetworkCookieJar *cookies = networkManager->cookieJar();
                  
                  QEventLoop eventLoop;
                  
                  QNetworkAccessManager mgr;
                  mgr.setCookieJar(cookies);
                  QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
                  
                  QNetworkRequest req(QUrl("http://test.com/usercp.php"));
                  QNetworkReply *reply = mgr.get(req);
                  eventLoop.exec();
                  
                  if (reply->error() == QNetworkReply::NoError)
                  {
                      QMessageBox::information(this, "Result", QString(reply->readAll()));
                  }
                  

                  }

                  void MainWindow::serviceRequestFinished(QNetworkReply *reply)
                  {
                  QMessageBox::information(this, "Result", QString(reply->readAll()));
                  }

                  But I couldn't send cookies !!!
                  Please help !!!

                  J Offline
                  J Offline
                  JKSH
                  Moderators
                  wrote on 7 Jun 2015, 12:20 last edited by
                  #8

                  @AliReza-Beytari:
                  Your main problem is: You did not wait for login.php to finish replying, before you sent your request to usercp.php.

                  Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                  1 Reply Last reply
                  0
                  • A Offline
                    A Offline
                    AliReza Beytari
                    wrote on 8 Jun 2015, 09:08 last edited by
                    #9

                    So, how can I wait for login.php to finish replying ??!!

                    J 1 Reply Last reply 8 Jun 2015, 10:36
                    0
                    • A AliReza Beytari
                      8 Jun 2015, 09:08

                      So, how can I wait for login.php to finish replying ??!!

                      J Offline
                      J Offline
                      JKSH
                      Moderators
                      wrote on 8 Jun 2015, 10:36 last edited by
                      #10

                      @AliReza-Beytari said:

                      So, how can I wait for login.php to finish replying ??!!

                      Wait for the QNetworkAccessManager::finished() or QNetworkReply::finished() signals. These signals are emitted when the reply has finished.

                      Do you know how to use signals and slots? http://doc.qt.io/qt-5/signalsandslots.html

                      Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                      1 Reply Last reply
                      0

                      6/10

                      3 Jun 2015, 13:13

                      • Login

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