QSslSocket hat da schon jemand was mit gemacht?

Verschiedenes zu Qt
Antworten
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

QSslSocket hat da schon jemand was mit gemacht?

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

Beitrag 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.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag 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?
OregonGhost
Beiträge: 19
Registriert: 30. Juli 2007 10:37
Wohnort: Lübeck
Kontaktdaten:

Beitrag 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.
Leffotrak
Beiträge: 26
Registriert: 12. Mai 2007 10:44

Beitrag 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.
Antworten