Frage

Ich versuche, einen sehr einfachen Rest-Client in QT zu erfüllen, aber ich bekomme in meiner Antwort einen "unbekannten Fehler". Auch wenn ich eine Paketaufnahme mache, sehe ich 0 Pakete, die an den Server gesendet werden.

mein Code ist:

generasacodicetagpre.

und mein Ergebnis ist: unbekannter Fehler.

Die einfache Anwendung kompiliert ohne Fehler oder Warnungen.

Kann jemand Fragen sehen?

Meine erwartete Ausgabe ist "Hallo Bob" und wurde mit einem PHP-Client mit Curl erfolgreich getestet.

War es hilfreich?

Lösung

Sie scheinen die QTNetwork-API zu missbrauchen. Sie haben zumindest die folgenden Probleme:

  • Sie enthalten das gesamte QTNetwork-Modul im Gegensatz zu den erforderlichen Klassen.

  • Sie rufen den Fehlerstrin () an, bevor das Signal "Fehler" () emittiert wird. Das ist nicht gut, und was Sie sehen, wird erwartet, da der Standard-Status in der Dokumentation erkannt wird.

  • Sie stellen keine Verbindung zum fertigen Signal der Async-API her. Die zurückgegebene qnetworkreply ist nur ein Zeiger, den Sie später mit Zugriffsmitgliedern verwenden können, aber es enthält noch nicht die Antwort, die an diesem Punkt angeht.

  • Sie müssen eine qcoreapplikation instantieren, jedoch nicht eigentlich zum Ausführen einer Ereignisschleife, die für den Async-Betrieb erforderlich ist, um die Antwort zu erhalten. Sie könnten auch immer blockieren, aber das ist meistens nicht wirklich empfohlen.

  • Sie verwenden einen Zeiger für den qnetworkaccessmanager hier unnötig.

  • Sie verwenden makro-'ische Großbuchstaben für einen regulären Variablennamen.

Sie könnten einige Code wie folgt schreiben. Es wäre einfacher, Lambda mit C ++ 11 zu verwenden, aber ich gehe davon aus, dass Sie mit Vorkompilern arbeiten müssen.

main.cpp

generasacodicetagpre.

main.pro

generasacodicetagpre.

Build and Run

generasacodicetagpre.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top