QHttp abwarten, bis es zu Ende ist
Verfasst: 17. März 2005 09:36
Hallo,
ich verzweifel jetzt bald mal an QHttp. Ich mach einen Request auf einen Server und wir tauschen ein paar Daten aus.
Code etwa so:
QHttp *http = new QHttp( server ... );
div. qDebug Mitteilungen über das was QHttp gerade macht.
http -> tueDeinZeug....
qDebug( "Fertig" );
Und der Output sieht dann aber so aus:
Fertig
Verbinden zu Hostname
Senden
Es wurden 3000/3000 Bytes gesendet
Lesen
Es wurden 3000/3000 Bytes gelesen
Verbunden
Verbindung wird geschlossen
Nicht verbunden
Man achte darauf, dass das Fertig als erstes kommt, obwohl es wirklich erst nach QHttp im Code kommt. So ich habe schon probiert das als QThread auszulagern, aber da kann ich auch nicht feststellen, wann er denn nun wirklich fertig ist, ich habe auch schon ein paar andere Dinge probiert, die aber nichtmal annähern von Erfolg gekrönt waren, mit qApp -> processEvents kommt fertig erst nach Verbinden zu Hostname, aber auch wenn ich das 10mal schreibe, oder die Zeit sehr hoch setzt bleibt es immer dort.
Hat jmd. eine Lösung, wie das 100%ig immer erst kommt, wenn QHttp fertig ist. Das Problem ist, dass ich nicht alles nach den Signalen machen kann, weil die QHttp ja nur eine nebenklasse ist. Sowas wie
while ( qhttp )
wait();
wärs halt, aber dafür scheine ich zu doof zu sein, denn Fertig kommt immer vor allem anderen...
Danke für eure Hilfe. Bin schon sehr gespannt, welche Denkfehler ich wieder einmal habe.
ich verzweifel jetzt bald mal an QHttp. Ich mach einen Request auf einen Server und wir tauschen ein paar Daten aus.
Code etwa so:
QHttp *http = new QHttp( server ... );
div. qDebug Mitteilungen über das was QHttp gerade macht.
http -> tueDeinZeug....
qDebug( "Fertig" );
Und der Output sieht dann aber so aus:
Fertig
Verbinden zu Hostname
Senden
Es wurden 3000/3000 Bytes gesendet
Lesen
Es wurden 3000/3000 Bytes gelesen
Verbunden
Verbindung wird geschlossen
Nicht verbunden
Man achte darauf, dass das Fertig als erstes kommt, obwohl es wirklich erst nach QHttp im Code kommt. So ich habe schon probiert das als QThread auszulagern, aber da kann ich auch nicht feststellen, wann er denn nun wirklich fertig ist, ich habe auch schon ein paar andere Dinge probiert, die aber nichtmal annähern von Erfolg gekrönt waren, mit qApp -> processEvents kommt fertig erst nach Verbinden zu Hostname, aber auch wenn ich das 10mal schreibe, oder die Zeit sehr hoch setzt bleibt es immer dort.
Hat jmd. eine Lösung, wie das 100%ig immer erst kommt, wenn QHttp fertig ist. Das Problem ist, dass ich nicht alles nach den Signalen machen kann, weil die QHttp ja nur eine nebenklasse ist. Sowas wie
while ( qhttp )
wait();
wärs halt, aber dafür scheine ich zu doof zu sein, denn Fertig kommt immer vor allem anderen...
Danke für eure Hilfe. Bin schon sehr gespannt, welche Denkfehler ich wieder einmal habe.