QHttp request mit Url-Query

Alles rund um die Programmierung mit Qt
Antworten
pdk
Beiträge: 6
Registriert: 9. April 2006 19:55

QHttp request mit Url-Query

Beitrag 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!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

War bereits Thema hier, einfach mal nach suchen.
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag von goofy »

Echt? war schon Thema ...

steh vor einem ähnlichen Problem und noch anderen ... :D

hab auch schon danach gesucht, leider nix gefunden was mir
geholfen hat. :shock:

was sollte ich denn bei der Suche eingeben?

thx

goofy
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

HTTP reicht schon.
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag 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 :shock:
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag 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
pdk
Beiträge: 6
Registriert: 9. April 2006 19:55

Beitrag 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.
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag 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 ... :lol:

Das hab ich noch nicht ausprobiert kommt aber als nächstest

goofy
goofy
Beiträge: 38
Registriert: 4. April 2006 15:40

Beitrag 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
pdk
Beiträge: 6
Registriert: 9. April 2006 19:55

Beitrag 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 :D
Antworten