Seite 1 von 3
Problem mit QHttp
Verfasst: 26. April 2008 16:44
von Strugge
Hallo zusammen,
ich habe ein Problem bei der Benutzung von QHttp!
Das Beispiel unter example/Network/Http kann ich problemlos ausführen!
Dieser Code:
QString user = ui.m_qLineEdit_User->text();
QString passwd = ui.m_qLineEdit_Password->text();
QString sender = ui.m_qLineEdit_Sender->text();
QString recipient = ui.m_qLineEdit_Recipient->text();
QString message = ui.m_qTextEdit_SMSMessage->toPlainText();
QString paramString = QString("user=%1&password=%2&sender=%3&recipients=%4&message=%5").arg(user).arg(passwd).arg(sender).arg(recipient).arg(message);
QByteArray arr;
arr.append(paramString);
http = new QHttp("
http://213.158.112.40", QHttp::ConnectionModeHttp);
http->post("/smsgw/sendsms.php", arr);
gibt mir allerings die folgende Fehlermeldung:
QSslSocket: cannot ssleay32 library: QLibrary::load_sys etc.
Any ideas?
Herzlichen Dank und beste Grüße,
Matthias
Verfasst: 26. April 2008 16:53
von Christian81
openssl nicht installiert
Verfasst: 26. April 2008 16:56
von Strugge
SSL braucht man aber nicht für eine HTTP Verbindung und da ich HTTPS nicht will, habe ich es explizit angegeben! Das Qt/Http Beispiel kommt ja auch ohne aus!
Muss also ein Qt-Bug sein!
Verfasst: 26. April 2008 17:02
von PeterLustig
"http://" ist NICHT Teil des Hostnamens! Außerdem halte ich den oberen Teil ebenfalls für sehr unsicher.. Was wenn man z.B. "&sender=bla" innerhalb der SMS mitschickt?
Verfasst: 26. April 2008 17:05
von Strugge
das ist nicht unsicher, weil ich es explizit festlege und niemand eingreifen kann! dass http:// nicht teil des hostnamen ist, löst das problem leider nicht!
Verfasst: 26. April 2008 18:20
von patrik08
so kann man nichts damit machen ....
Code: Alles auswählen
http = new QHttp("http://213.158.112.40", QHttp::ConnectionModeHttp);
http->post("/smsgw/sendsms.php", arr);
wenn schon
Code: Alles auswählen
QUrl requesturl("http://213.158.112.40//smsgw/sendsms.php");
QHttp *send = new QHttp(requesturl.host(),requesturl.port(), parent );
header.setRequest("POST",requesturl.path(),1,1);
teil code von
http://www.qt-apps.org/content/show.php ... tent=76432
Verfasst: 26. April 2008 18:23
von Strugge
danke, aber auch das löst das eigentliche problem natürlich nicht!
Verfasst: 26. April 2008 18:49
von PeterLustig
Dann betreiben wir mal ein wenig Fehlereingrenzung..
Kannst du das Beispiel nur ausführen, oder auch selbst kompilieren?
Wann taucht der von dir genannte Fehler auf?
Wie lautet die Fehlermeldung ganz genau?
Verfasst: 26. April 2008 18:54
von Strugge
ja, ich kann das beispiel kompilieren, da ich es selbst geschrieben habe!
der fehler taucht auf, beim ausführen von http->post(...)
die beschreibung beginnt wie oeben beschrieben, der rest ist irrelevant!
ich konnte den fehler beheben, in dem ich die 3 dateien ssleay32.dll, libssl32.dll, libeay32.dll in das verzeichnis der *.exe kopiert habe!
allerdings wird der url request dennoch nicht richtig ausgeführt!
danke,
matthias
Verfasst: 26. April 2008 18:57
von PeterLustig
Erwartest du zufällig das die Seite "smsgw/sendsms.php?user=%1&password=%2&sender=%3&recipients=%4&message=%5" aufgerufen wird? Also das die Parameter wie aus z. B. PHP gewohnt über den URL Namen übermittelt wird?
Verfasst: 26. April 2008 18:59
von Strugge
ja klar, was sonst?
Verfasst: 26. April 2008 19:00
von PeterLustig
Warum sendest du dann einen POST Request?
Verfasst: 26. April 2008 19:01
von Strugge
was soll ich denn sonst für einen request schicken?
Verfasst: 26. April 2008 19:05
von PeterLustig
Einfach die URL "bla.php?tut=fubar" abrufen.. Diese Argumente sind Teil der URL. Ein POST Request ist etwas anderes.
Verfasst: 26. April 2008 19:06
von Strugge
und wie rufe ich die ab?
danke schon mal!
M.