Seite 1 von 1
[gelöst] QHttp
Verfasst: 19. Oktober 2005 14:16
von Jonez
Hi,
ich möchte gerne ein php-skript auf einem WebServer über QHttp aufrufen, allerdings den zurückgegebenen Text in einen QString schreiben.
Ich finde aber leider nur Beispiele dazu, wie man eine Datei herunterläd.
Meine Versuche die Daten nicht in ein QFile-Objekt sondern in einen QBuffer zu schreiben, scheitern leider alle...
Hat mir da vielleicht jemand ein kleines Beispiel?
Danke,
Jonas
Verfasst: 19. Oktober 2005 14:17
von Goos
Dann zeig doch mal deine gescheiterten Versuche, vielleicht kann man daran noch was drehen
Goos
Verfasst: 19. Oktober 2005 16:07
von Jonez
Okay

... also ich poste mal hier nur das Wichtigste...
Code: Alles auswählen
void clsMainForm::Login() {
http = new QHttp(this);
buffer = new QBuffer(this);
buffer->open(QBuffer::ReadWrite);
connect(http, SIGNAL(requestFinished(int, bool)), this, SLOT(http_requestFinished(int, bool)));
http->setHost("jonaszilles.homelinux.org", 80);
http->get("http://jonaszilles.homelinux.org/passwds/test.php", buffer);
}
void clsMainForm::http_requestFinished(int id, bool error) {
QByteArray data;
QString value;
data = buffer->readAll();
value = value.setNum(data.size());
// Werte in einer Listbox ausgeben:
// errorString() enthält den Text "unknown Error"
// value ist "0"
this->lstPasswords->addItem(http->errorString());
this->lstPasswords->addItem(value);
}
Das seltsame ist, ist dass die Variable "error" von der Mathode http_requestFinished auf "false" steht... also eigentlich sollte kein Fehler aufgetreten sein... funktionieren tut es trotzdem nicht.
Hoffe das hilft,
Danke,
Jonas
Verfasst: 20. Oktober 2005 09:39
von Goos
Jonez hat geschrieben:Das seltsame ist, ist dass die Variable "error" von der Mathode http_requestFinished auf "false" steht
Fuer id 1 und id 2?
Goos
Verfasst: 20. Oktober 2005 10:45
von Jonez
Fuer id 1 und id 2?
ja

Verfasst: 20. Oktober 2005 11:23
von macman
Wie wär es denn mal hiermit? Bevor du auf deinen Buffer zugreifst, solltest Du ihn erstmal schliessen. Schließlich ist es noch ein offenes QIODevice.
Code: Alles auswählen
void clsMainForm::http_requestFinished(int id, bool error)
{
QString data;
QString value;
buffer->close();
data = buffer->data();
value = value.setNum(data.length());
}
Verfasst: 20. Oktober 2005 11:32
von Jonez
Hey danke, funktioniert
Danke,
Jonas