Seite 1 von 1

[gelöst] HTTP Post request geht nicht

Verfasst: 22. Februar 2008 21:17
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

Verfasst: 22. Februar 2008 22:45
von upsala
Deine Browserzeile funktioniert, aber ein GET nicht? Das ist das selbe... Was sagt Wireshark zu deinem Netzwerkverkehr?

Verfasst: 22. Februar 2008 23:28
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

Verfasst: 22. Februar 2008 23:48
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.

Verfasst: 23. Februar 2008 12:34
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?