QHttp mit mehreren parallelen Verbindungen
Verfasst: 13. Dezember 2006 12:08
Hallo!
Ich bin im Moment dabei die Download-Engine für mein Programm zu schreiben und bin jetzt bei einem Problem gelandet, wo ich im Moment nicht weiter weiß.
Das Problem liegt daran, das ich mit QHttp mehrere Verbindungen gleichzeitig aufbaue und nicht weiß wie ich die empfangenen Daten dem jeweiligen Auftrag zuordnen soll.
Also im Klartext ruft meine Hauptroutine die URLs so auf:
Gleichzeitig speichere ich über http->currentId() die vergebene ID in einer QMap, zusammen mit der dazugehörigen URL.
Damit die angekommenen Daten verarbeitet werden können, habe ich zur Zeit zwei Connections erstellt:
Diese werden auch ordnungsgemäß aufgerufen, nur habe ich jetzt das Problem, daß ich diesen Daten keine URL zuordnen kann.
Das heißt, wenn ich die Daten abschicke über "http->request(header, buffer);" ich von http->currentId() eine 1 als ID bekomme. Wenn dann wenige Momente später das Signal "responseHeaderReceived" ausgelöst wird und ich in der Funktion Cookie lande, erhalte ich über http->currentId() eine 3 zurück. Ich hab's mehrfach getestet und die Werte sind immer dieselben, obwohl ich nur eine QHttp-Request geschaltet habe.
Ich habe auch schon versucht die Connections so zu verändern, das sie http->currentId() an Cookie liefern, aber das klappte auch nicht.
Deshalb meine Frage, wie kann ich eindeutig feststellen zu welchem Request die empfangenen Daten gehören?
Im Moment stehe ich da auf dem Schlauch.
Gruß,
Locutus
Ich bin im Moment dabei die Download-Engine für mein Programm zu schreiben und bin jetzt bei einem Problem gelandet, wo ich im Moment nicht weiter weiß.
Das Problem liegt daran, das ich mit QHttp mehrere Verbindungen gleichzeitig aufbaue und nicht weiß wie ich die empfangenen Daten dem jeweiligen Auftrag zuordnen soll.
Also im Klartext ruft meine Hauptroutine die URLs so auf:
Code: Alles auswählen
http->request(header, buffer);Damit die angekommenen Daten verarbeitet werden können, habe ich zur Zeit zwei Connections erstellt:
Code: Alles auswählen
connect(http, SIGNAL(responseHeaderReceived(const QHttpResponseHeader &)), this, SLOT(Cookie(const QHttpResponseHeader &)));
connect(http, SIGNAL(done(bool)), this, SLOT(Fertig()));Das heißt, wenn ich die Daten abschicke über "http->request(header, buffer);" ich von http->currentId() eine 1 als ID bekomme. Wenn dann wenige Momente später das Signal "responseHeaderReceived" ausgelöst wird und ich in der Funktion Cookie lande, erhalte ich über http->currentId() eine 3 zurück. Ich hab's mehrfach getestet und die Werte sind immer dieselben, obwohl ich nur eine QHttp-Request geschaltet habe.
Ich habe auch schon versucht die Connections so zu verändern, das sie http->currentId() an Cookie liefern, aber das klappte auch nicht.
Deshalb meine Frage, wie kann ich eindeutig feststellen zu welchem Request die empfangenen Daten gehören?
Im Moment stehe ich da auf dem Schlauch.
Gruß,
Locutus