[gelöst] QHttp

Alles rund um die Programmierung mit Qt
Antworten
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

[gelöst] QHttp

Beitrag 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
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag von Goos »

Dann zeig doch mal deine gescheiterten Versuche, vielleicht kann man daran noch was drehen :)

Goos
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag 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
Goos
Beiträge: 360
Registriert: 17. August 2004 10:10
Wohnort: Black Forest

Beitrag 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
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag von Jonez »

Fuer id 1 und id 2?
ja :-(
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag 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());
}
Jonez
Beiträge: 22
Registriert: 7. Oktober 2005 01:01
Kontaktdaten:

Beitrag von Jonez »

Hey danke, funktioniert :-)

Danke,
Jonas
Antworten