[closed]warten, bis Http Response zurück kommt

Alles rund um die Programmierung mit Qt
Antworten
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

[closed]warten, bis Http Response zurück kommt

Beitrag von RED Squirrel »

hi.

ich versuche, eine login Funktion zu schreiben, die mir entweder true oder false zurück gibt, abhängig von einem HTTP Response wert.

Das sind mein versuche:

Code: Alles auswählen

bool redaxo::login(QString uname, QString upassword)
{
...

connect(loginHTTP, SIGNAL(responseHeaderReceived(const QHttpResponseHeader &)),this, SLOT(readResponseHeader(const QHttpResponseHeader &)));

	while(al < 3)
	{
		if(httpStatus == 302)
			return true;
		sleep(al);
		al++;
	}
	
	return false;
}


void redaxo::readResponseHeader(const QHttpResponseHeader &responseHeader)
{
		QString cookie = responseHeader.value("set-cookie");
		cookie = cookie.section(";", 0, 0);    

		if(cookie != "")		
			rexCookie = cookie;
		
		httpStatus = responseHeader.statusCode();
}
nun wird aber in httpStatus nichts hineingeschrieben... und das ganze mit einem sleep zu lösen ist auch nicht grad schön.

Das Hauptproblem ist aber, dass im Slot readResponseHeader, der Variable httpStatus kein Wert zugewiesen werden kann.

vielen dank
RED
Zuletzt geändert von RED Squirrel am 27. Februar 2008 09:10, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Tu dir einen Gefallen, und beschäftige dich dringend mit Signal, Slots und Eventhandling in Qt.
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

Beitrag von RED Squirrel »

liegt es vielleicht daran, dass sleep() das ganze Programm anhält, und somit der header gar nicht kommen kann? Oder liegt es, obwohl das anscheinend nirgendwo steht daran, dass Slots nicht in QObjects schreiben können? Oder leigt das Problem irgendwo anders?

Ich beschäftige mich ja logischerweise mit allen Problemen, die auftreten, aber eine kleine Hilfe währe schon nett.

Ich hab in dem Zusammenhang Signals und SLots weiter versucht zu verstehen, aber außer den zwei oben genannten Möglichkeiten, fällt mir nichts ein.

Würd mich freuen, wenn du mir beim Lernen helfen kannst

lg.
RED
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Da beide in der gleichen Klasse sind - wo ist das Problem?
Wie gesagt - ich glaube dein grundsätzliches Verständnis fehlt hier etwas. -> Ich stosse eine Aktion an, connecte mich mit dem result, gehe wieder in die Eventloop damit die GUI benutzbar bleibt. Wenn die Aktion fertig ist bearbeite ich die erzeugten Daten weiter.
Mit sleep hältst du das gesamte Programm an, wann soll denn dann noch die Event-Loop laufen?

Und wenn du nicht den Diskussions-Thread gewechselt hättest, obwohl das Thema gleich geblieben ist, würden dir vielleicht auch mehr Leute helfen.
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

Beitrag von RED Squirrel »

sry, ich dachte, mein Problem lag an meinem SLOT, und nicht an dem loop. Tut mir led. ich schließ diesen Tread mal.
Antworten