Die Zweifel, die ich habe, ist über den richtigen Entwurf einer Software, die mehrere und verschachtelte GET/POST-Anfrage implementiert.Die beste Möglichkeit, multiple und verschachtelte GET/POST in QT mit QNetworkManager zu erstellen
Angenommen, Sie müssen eine login() -Funktion ausführen, die ein GET und einen POST erfordert, und dann retrieveXYZ(), was zwei GETs erfordert (und so weiter, skalierbar).
Die Art und Weise war ich thinkig es zu tun war wie
mainwindow.cpp
//code
login();
retrieveXYZ();
//code
Mainwindow::login(){
//code
connect(nam, SIGNAL(finished()), this, SLOT(onGetLoginFinished()));
nam->get(...);
}
Mainwindow::onGetLoginFinished(){
//do stuff
connect(nam, SIGNAL(finished()), this, SLOT(onPostLoginFinished()));
nam->post(...);
}
Mainwindow::onPostLoginFinished(){
//do stuff
}
Mainwindow::retrieveXYZ(){
//code
connect(nam, SIGNAL(finished()), this, SLOT(onGet1RetrieveFinished()));
nam->get();
//code
}
Mainwindow::onGet1RetrieveXYZFinished(){
//do stuff
connect(nam, SIGNAL(finished()), this, SLOT(onGet2RetrieveFinished()));
nam->get();
}
oder sollte ich so etwas wie QSignalMapper benutzen? Welches sind die richtigsten/effizientesten Methoden? Ich habe Leute gesehen, die sender() verwendet haben, aber ich habe den Punkt nicht verstanden.
Grundsätzlich würde Ich mag die besondere Antwort beendet (Signal) anstelle des allgemeinen eine (oder des qnam) abrufen
Diese Methode funktioniert, aber es ist nicht schön und sauber zu mir
Ist das Beste, was wir bekommen können?
Verschieben der connect Ansatz auf die Antwort?
Haben Sie mehrere 'QNetworkAccessManager'? Welcher Teil ist seriell/parallel? – Jarod42
Ich habe nur einen QNetworkAccessManager, was meinst du mit seriell/parallel? Ich habe keine parallele Anfrage, ich habe nur Serien. Das Problem ist, dass sie je nach Aufgaben unterschiedlich sind. Login() -Funktion ist ein Beispiel für ein GET gefolgt von einem POST – user217354
Sie wollen also nur Anfrage blockieren? – Jarod42