Seite 1 von 1
QHttp request mit Url-Query
Verfasst: 9. April 2006 20:07
von pdk
Hallo,
ich habe folgendes Problem:
Ich möchte in meiner Applikation ein HTTPRequest schicken und Veriablen im Stil:
http://url/file.ext?key=value
anhängen.
Leider erlaubt QHttp ja nur URLs ohne Solche Erweiterungen.
Werden solche Variablen im HTTPHeader übergeben und wie sieht der Header dazu aus? Oder erlaubt es Qt dies auch anders zu regeln?
Vielen Dank schon im Vorraus!
Verfasst: 10. April 2006 07:18
von macman
War bereits Thema hier, einfach mal nach suchen.
Verfasst: 10. April 2006 14:00
von goofy
Echt? war schon Thema ...
steh vor einem ähnlichen Problem und noch anderen ...
hab auch schon danach gesucht, leider nix gefunden was mir
geholfen hat.
was sollte ich denn bei der Suche eingeben?
thx
goofy
Verfasst: 10. April 2006 14:27
von macman
HTTP reicht schon.
Verfasst: 10. April 2006 14:57
von goofy
sorry bin glaub zu blöd ...
seh einfach keinen thread bei dem es um dieses Problem geht ...
hab die schon ein paar mal angeschaut

Verfasst: 10. April 2006 15:01
von goofy
achso ja
tach pdk,
mit QUrl kannst du diese URLs schon angeben ...
bei mir funktioniert das, allerdings machts irgendwann mal *bum* und nix geht mehr.
kompilier mal des beispiel "http" das ist bei der doku dabei, da kann man auch solche urls angeben, die machens da auch mit QUrl.
goofy
Verfasst: 10. April 2006 17:23
von pdk
Hi,
ich habe es genau mit diesem Beispiel versucht!
Das Ergebniss ist, dass er einfach die php-datei runter läd und gut ist.
Die Datei beinhaltet dann natürlich eine Fehlermeldung: "Falscher Aufruf" da sie ja die Get-Variablen erwartet.
Ich habe mich jetzt mal mit nem HTTP-Traffic Sniffer hingesetzt und den Seitenaufruf den ich haben möchte durchgetestet.
Dabei zeigt mir der Sniffer immer:"Method Line: /GET var=value" an.
Die Frage wäre nun ob "Method Line" jetzt einfach eine Erfindung vom Sniffer ist oder Bestandteil des HTTP-Headers.
@Goofy: QUrl bringt mir leider nichts. Ist ja nur ein Struct o.ä. was die Bestandteile der URL enthält, aber nicht den HTTP-Header erweitert.
Die Threads die ich hier gefunden habe haben alle das Problem gelöst wie man mit POST arbeitet.
Ich meine sogar alle um Datein hochzuladen. Auch sehr nützlich aber leider nicht mein Problem
Wenn jemand noch ne Idee hat wäre toll. Auch Infos zu Recursive-Web bzw. Redirects in Qt würden mir sehr helfen.
Verfasst: 10. April 2006 17:23
von goofy
also der nachmittag hat sich gelohnt ...
hab eine Lösung für unser Problem.
>Ich möchte in meiner Applikation ein HTTPRequest schicken und Veriablen
>im Stil:
http://url/file.ext?key=value anhängen.
Hier die Lösung:
Code: Alles auswählen
URL = new QUrl("http://www.bla.de");
Http->setHost(URL->host());
Http->setUser(user, pw);
QHttpRequestHeader header("GET", "/axis-cgi/admin/param.cgi?action=list");
Http->request(header, 0, file);
Hier wird die Anfrage in file geladen.
Man kann aber auch dinge setzten, statt "GET" einfach "POST".
Also so ist die Theorie ...
Das hab ich noch nicht ausprobiert kommt aber als nächstest
goofy
Verfasst: 10. April 2006 17:30
von goofy
Hallo,
hoff das gerade konnte helfen.
also hab mit Live HTTP Headers das Ganze angeschaut, Extension für FireFox.
http://downloads.mozdev.org/livehttphea ... s-0.12.xpi
Glaub das Methode Line eine Erfindung des Sniffers ist.
in diese LiveHTTPHeaders sieht das wiefolgt aus:
GET /axis-cgi/admin/param.cgi?action=list HTTP/1.1
Dann kannst du das einfach nehmen und das ...
Code: Alles auswählen
QHttpRequestHeader header("GET", "/axis-cgi/admin/param.cgi?action=list");
draus machen.
Dann mit diesem Header irgendwelchen tollen sachen machen ..
goofy
Verfasst: 10. April 2006 19:58
von pdk
Hey vielen Dank für die Hilfe!
Ich habe mich heute erstmal mit QThreads beschäftigt

und mich um RegEx für die ResponseHeader Auswertung gekümmert!
Werde gleich mal probieren on ich mit deiner Lösung weiter komme.
Back in 5 mins
