Seite 1 von 1

QSslSocket hat da schon jemand was mit gemacht?

Verfasst: 17. August 2007 12:57
von Leffotrak
Ich würde gerne in meinem Programm SSL-Unterstützung einbauen und da Qt ab Version 4.30 so was kann, habe ich mir die Anleitung mal angeguckt. Leider ist diese sehr knapp bemessen.
Hat damit schon wer programmiert und vielleicht laufenden Sourcecode wie man damit eine HTTPS-Seite runterladen kann?

Gruß Leffotrak

Verfasst: 17. August 2007 14:30
von macman
Ich werde mich demnächst damit beschäftigen müssen und habe mir deshalb auch schon die Doku etwas näher angeguckt. Um eine https-Seite zu holen brauchst Du aber wohl keinen QSslSocket, da müsste ein QHttp::QHttp(url, QHttp::ConnectionModeHttps) reichen. Gib Bescheid wenn es damit geklappt hat.

Verfasst: 17. August 2007 16:56
von Leffotrak
Danke für den Tip, bin momentan nicht sicher ob das funktioniert. Ich hab's bisher an zwei Seiten getestet, wo ich 'ne https-Seite wußte. Bei der einen bekomme ich einen leeren String zurück und bei Paypal bekomme ich einen 302-Fehler zurück...muß ich weiter testen.
Hier mal der Testcode:

Code: Alles auswählen

http = new QHttp("www.paypal.com", QHttp::ConnectionModeHttps, 443, this);
connect(http, SIGNAL(done(bool)), SLOT(yoo(bool)));
http->get("/"); 
Ich habe vorhin noch etwas gegoogelt und diesen Source hier direkt vom zuständigem Entwickler bei Trolltech entdeckt:

Code: Alles auswählen

    QSslSocket socket;
    socket.connectToHostEncrypted("www.paypal.com", 443);
    socket.write("GET / HTTP/1.0\r\n\r\n");
    while (socket.waitForReadyRead())
        qDebug() << socket.readAll().data();
Läßt sich bei mir aber nicht kompilieren, obwohl QSslSocket inkludiert ist meldet Visual Studio "error C2065: 'QSslSocket': nichtdeklarierter Bezeichner" - seltsam.

Klappt das bei dir denn?

Verfasst: 17. August 2007 17:19
von OregonGhost
Hast du zufällig noch eine Beta oder einen RC von Qt 4.3.0 irgendwo im Suchpfad? Zwischenzeitlich musste man nämlich irgendwo irgendwas definieren, damit QSslSocket korrekt inkludiert wurde, und unter bestimmten Umständen hat die Qt Visual Studio Integration nicht überall die Referenzen auf die Qt-Version aktualisiert. Außerdem war bei mindestens einer dieser Vorversionen Qt nicht mit SSL-Support gebaut worden, was ebenfalls diesen Fehler verursachte.
Wenn keine ältere Version im eigentlichen Suchpfad liegt, mal die Qt-Version der Projektmappe überprüfen.

Ich habe in letzter Zeit nichts mit QSslSocket gemacht, aber mich zunächst mit QtSslSocket beschäftigt und dann den genannten Vorabversionen von QSslSocket rumgespielt. Grundsätzlich schien das alles soweit zu funktionieren.

Verfasst: 17. August 2007 18:27
von Leffotrak
Hmm, interessant. Als ich Qt 4.30 kompiliert habe, war noch die Vorgängerversion auf der Platte. Ob dabei vielleicht was schiefgelaufen ist?
Im Moment gibt's für Qt 4.31 noch keinen Patch. Werde ich wohl so lange warten müssen und werde es dann mit QSslSocket noch mal probieren.