QNetworkAccessManager ruft PHP auf



  • Hallo Zusammen

    ich möchte das Ergebnis einer PHP-Seite auswerten.

    Bisher habe ich folgenden Code:

    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;
    

    Wenn ich die Adresse http://www.schubag.ch/pumppro/lic_get.php im Browser eingebe, kommt als Ausgabe
    "Keine Daten"
    - Das ist auch richtig und daran sehe ich, dass die PHP-Datei richtig arbeitet.
    Ich hätte erwartet, dass diese Ausgabe auch im reply landet - tut sie aber nicht.

    Meine cout Ausgabe:

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

    Wo mache ich einen Fehler?



  • Hallo

    Guck dir mal die Doku an
    http://doc.qt.io/qt-5/qnetworkaccessmanager.html

    Dein Code liest Daten aus die noch gar nicht das sind.
    Entweder du machst das mit Sginale und Slots oder mit einer Eventloop

    QNetworkRequest request;
    request.setUrl(QUrl("http://qt-project.org"));
    request.setRawHeader("User-Agent", "MyOwnBrowser 1.0");
    
    QNetworkReply *reply = manager->get(request);
    connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
            this, SLOT(slotError(QNetworkReply::NetworkError)));
    connect(reply, SIGNAL(sslErrors(QList<QSslError>)),
            this, SLOT(slotSslErrors(QList<QSslError>)));
    
    QNetworkAccessManager qnam;
    QNetworkReply *reply = qnam.get(QNetworkRequest(QUrl(…)));
    QEventLoop loop;
    QObject::connect(reply, SIGNAL (finished()), &loop, SLOT (quit()));
    loop.exec();
    

    Quelle https://wiki.qt.io/Threads_Events_QObjects


Log in to reply