Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. International
  3. German
  4. PHP Ausgabe einlesen
Qt 6.12 LTS is out! See what's new in the release blog

PHP Ausgabe einlesen

Scheduled Pinned Locked Moved Unsolved German
11 Posts 3 Posters 5.1k 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.
  • T Offline
    T Offline
    Thomas 63
    wrote on last edited by
    #1

    Hallo Zusammen

    Ich versuche die Ausgabe einer PHP-Datei einzulesen.
    Bisher habe ich folgenden Code versucht:

        QNetworkAccessManager *nam = new QNetworkAccessManager(this);
        QUrl url("http://www.schubag.ch/pumppro/lic_get.php");
        cout << "1 " + url.toString().toStdString() << endl;
        QNetworkReply* reply = nam->get(QNetworkRequest(url));
        cout << "2 " << endl;
        QString data = (QString) reply->readAll();
        cout << "3 --->" + data.toStdString() + "<---" << endl;
    
    

    Meine Ausgabe bis hierhin:

    1 http://www.schubag.ch/pumppro/lic_get.php
    2 
    3 ---><---
    

    Rufe ich die Datei im Browser auf, erhalte ich "Keine Daten", was korrekt ist.
    Was mache ich falsch?

    Thomas

    1 Reply Last reply
    0
    • aha_1980A Offline
      aha_1980A Offline
      aha_1980
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi @Thomas-63

      Ich habe noch nicht mit QNetworkReply gearbeitet, aber ich vermute, dass dein Programm einfach viel zu schnell versucht, Daten auszuwerten.

      Nach Dokumenation: http://doc.qt.io/qt-5/qnetworkreply.html#finished:

      This signal is emitted when the reply has finished processing. After this signal is emitted, there will be no more updates to the reply's data or metadata.

      Du solltest also QNetworkReply *reply als Klassen-Member restellen und das Signal finished mit einem Slot deiner Klasse verbinden. Dort müsstest Du dann die Daten auslesen können.

      Qt has to stay free or it will die.

      1 Reply Last reply
      0
      • T Offline
        T Offline
        Thomas 63
        wrote on last edited by
        #3

        Oh, wow... das klingt kompliziert. :-)

        Scheint mir eher für meine Fähigkeiten zu viel...

        1 Reply Last reply
        0
        • aha_1980A Offline
          aha_1980A Offline
          aha_1980
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @Thomas-63: Dann empfehle ich Dir, im QtCreator das HTTP example zu öffnen (Welcome -> Examples -> nach http suchen).

          Dieses Beispiel scheint genau das zu machen was Du brauchst.

          Qt has to stay free or it will die.

          1 Reply Last reply
          0
          • T Offline
            T Offline
            Thomas 63
            wrote on last edited by
            #5

            Ich habe folgendes gemacht:

                QObject::connect(nam, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
                QNetworkReply* reply = nam->get(QNetworkRequest(url));
            
            

            Hilft auch nix.

            jsulmJ 1 Reply Last reply
            0
            • T Thomas 63

              Ich habe folgendes gemacht:

                  QObject::connect(nam, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
                  QNetworkReply* reply = nam->get(QNetworkRequest(url));
              
              

              Hilft auch nix.

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @Thomas-63 Wozu denn eine EventLoop?
              Einfach slot verbinden. In der Doku gibt es auch ein Beispiel (http://doc.qt.io/qt-5/qnetworkaccessmanager.html):

              QNetworkAccessManager *manager = new QNetworkAccessManager(this);
              connect(manager, SIGNAL(finished(QNetworkReply*)),
                      this, SLOT(replyFinished(QNetworkReply*)));
              
              manager->get(QNetworkRequest(QUrl("http://qt-project.org")));
              

              Qt ist assynchron also sollte man auch assynchron programmieren statt zu versuchen es zu serialisieren.

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • T Offline
                T Offline
                Thomas 63
                wrote on last edited by
                #7

                Besten Dank fürs Helfen!

                Leider folgende Fehlermeldung:

                QObject::connect: No such slot MainWindow::replyFinished(QNetworkReply*)
                QObject::connect: (receiver name: 'MainWindow')

                jsulmJ 1 Reply Last reply
                0
                • T Thomas 63

                  Besten Dank fürs Helfen!

                  Leider folgende Fehlermeldung:

                  QObject::connect: No such slot MainWindow::replyFinished(QNetworkReply*)
                  QObject::connect: (receiver name: 'MainWindow')

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Thomas-63 Hast du denn so ein slot in MainWindow?

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • T Offline
                    T Offline
                    Thomas 63
                    wrote on last edited by
                    #9

                    Nein, habe ich nicht. Ich weiss auch nicht wirklich, wie ich das korrekt einbinde.

                    Ist denn das "finished" automatisch dort eingebunden?

                    Das jabe ich auch nicht explizit selber eingefügt.

                    Sorry wegen der einfachen (für euch) Fragen, aber ich bin noch recht neu im QT

                    1 Reply Last reply
                    0
                    • T Offline
                      T Offline
                      Thomas 63
                      wrote on last edited by
                      #10

                      Eingerichtet habe ich die slots, weiss aber nicht was ich da drinnen ausführen soll.

                      jsulmJ 1 Reply Last reply
                      0
                      • T Thomas 63

                        Eingerichtet habe ich die slots, weiss aber nicht was ich da drinnen ausführen soll.

                        jsulmJ Offline
                        jsulmJ Offline
                        jsulm
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        @Thomas-63 http://doc.qt.io/qt-5.9/signalsandslots.html
                        http://doc.qt.io/qt-5/qnetworkaccessmanager.html
                        http://doc.qt.io/qt-5/qnetworkreply.html

                        "Eingerichtet habe ich die slots, weiss aber nicht was ich da drinnen ausführen soll" - ich nehme mal an, dass du die Antwort (reply) lesen willst? Dafür kannst du QNetworkReply benutzen welches an dein slot übergeben wird.

                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                        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
                        • Unsolved