Qt NetworkAccessManager Unbekannter Fehler
-
21-12-2019 - |
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.
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.