[gelöst] HTTP Post request geht nicht

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

[gelöst] HTTP Post request geht nicht

Beitrag von RED Squirrel »

hi!

ich hab mch jetzt durch viele viele Forum Posts gearbeitet, und ein script zusammengestückelt, dass sich bei einem php script einloggen soll.

Hier ist einmal der code:

Code: Alles auswählen

	QCoreApplication a(argc, argv);
	
	// content
	QByteArray content("page=structure&REX_ULOGIN=admin&REX_UPSW=XXX");


	// header
	QHttpRequestHeader header("POST", "/redaxo/index.php");
	
	header.setValue("Host", "www.franz-wilding.eu");
	header.setContentType("application/x-www-form-urlencoded"); // important
	header.setContentLength(content.length());

	
	// request
	QFile file("result.html");
	QHttp http("www.franz-wilding.eu", 80);

	http.request(header, content, &file);


	a.connect(&http, SIGNAL(done(bool)), &a, SLOT(quit()));
	
	return a.exec();
wenn ich das als POST schicke, bekomme ich gar nichts. Wenn ich es als GET schicke, dann meldet sich das Programm nicht an, sprich die content-variabeln werden nicht ausgelesen, weil das PHP script ja auf POST reagiert. Was ich in dem Zusammenhang nicht verstehe sind 2 dinge.
1. Wieso geht das mit POST nicht?
2. Wieso funktioniert es, wenn ich im FF in die Browserzeile: http://www.franz-wilding.eu/redaxo/inde ... X_UPSW=XXX eingebe?

Danke für eure Hilfe
RED
Zuletzt geändert von RED Squirrel am 24. Februar 2008 19:38, insgesamt 1-mal geändert.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Deine Browserzeile funktioniert, aber ein GET nicht? Das ist das selbe... Was sagt Wireshark zu deinem Netzwerkverkehr?
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

Beitrag von RED Squirrel »

HTTP POST /redaxo/index.php HTTP/1.1 (application/x-www-form-urlencoded)
HTTP HTTP/1.1 302 Found

hier einmal die HTTP einträge, bei POST.

Und hier die, wenn ich GET einstelle:

HTTP GET /redaxo/index.php HTTP/1.1 (application/x-www-form-urlencoded)
HTTP HTTP/1.1 200 OK (text/html)

wieso wird HTTP/1.1 bei GET akzeptiert, und bei Post nicht? oder liegt es doch an was anderem? Kann es sein, dass ich mich erfolgreich einlogge, dann aber dann nirgendwohin weitergeleitet werde?

lg. RED

PS: danke für den Tipp mit Wireshark
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

Beitrag von RED Squirrel »

das bekomme ich für die HTTP 302 weiterleitung auch noch angezeigt:

Set-Cookie: PHPSESSID=cnq1k99or94jrkdjuilimcomf4; path=/\r\n
Set-Cookie: PHPSESSID=af63javqcc591rmbnp7u936df7; path=/\r\n
Location: index.php?page=structure\r\n

gerade bei Location sollte doch auch username und passwort stehen...
ich dachte, es hat vielleicht was mit der codierung des .cpp files zu tun, und hab es als UTF-8 und Western ISO probiert... hat aber nichts geändert.
RED Squirrel
Beiträge: 50
Registriert: 3. Februar 2007 22:21

Beitrag von RED Squirrel »

ich glaube ich hab mein (zumindest einen Teil des Problems) gefunden.

Ich muss aus dem response des Servers das Cookie auslesen, und dann bei der GET anfrage mitschicken. Aber ich schaf es nicht, den request auszulesen, geschweigedenn in eine Datei auszugaben. In Wireshark wird er aber angezeigt.

Vielleicht kennt jemand das Problem?
Antworten