Problem mit QHttp
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Wenn ich zu der url
http://213.158.112.40/smsgw/sendsms.php sende
sei es POST oder GET oder auch DELETE MKCOOL und andere
mit meinem HTTP debugger
http://www.qt-apps.org/content/show.php ... tent=76432
kommt immer die selbe antwort ....
502 MISSING USER
503 MISSING PASSWORD
504 MISSING SENDER
505 MISSING RECIPIENT
507 MISSING MESSAGE
im header kommt:
----------------------incomming header----------------------------
Header responds = 200
date=Sat, 26 Apr 2008 20:14:30 GMT
server=Apache/2.2.3 (Debian) PHP/5.2.0-8+etch1
x-powered-by=PHP/5.2.0-8+etch1
content-length=112
keep-alive=timeout=15, max=100
connection=Keep-Alive
content-type=text/html; charset=UTF-8
Ich rate dir zuerst dass PHP script so einstellen dass es nur mit post geht
und dann ein normales html formular mit post zu machen das funktioniert
dann geht es auch mit QT schneller...
http://213.158.112.40/smsgw/sendsms.php sende
sei es POST oder GET oder auch DELETE MKCOOL und andere
mit meinem HTTP debugger
http://www.qt-apps.org/content/show.php ... tent=76432
kommt immer die selbe antwort ....
502 MISSING USER
503 MISSING PASSWORD
504 MISSING SENDER
505 MISSING RECIPIENT
507 MISSING MESSAGE
im header kommt:
----------------------incomming header----------------------------
Header responds = 200
date=Sat, 26 Apr 2008 20:14:30 GMT
server=Apache/2.2.3 (Debian) PHP/5.2.0-8+etch1
x-powered-by=PHP/5.2.0-8+etch1
content-length=112
keep-alive=timeout=15, max=100
connection=Keep-Alive
content-type=text/html; charset=UTF-8
Ich rate dir zuerst dass PHP script so einstellen dass es nur mit post geht
und dann ein normales html formular mit post zu machen das funktioniert
dann geht es auch mit QT schneller...
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt
@Patrik: Dass er dir als Antwort die fehlenden Daten gibt ist klar, denn die sind ja in der URL kodiert! Siehe in meinem Code
paramString mit den ganzen .arg(...).arg(...)!
ich will die komplette URL einfach nur an den server schicken der sie ausführen soll!
dann wird nämlich eine sms verschickt!
wenn ich die komplette URL in meinem browser eingebe, funktioniert alles wunderbar! nun will ich das aber aus einer qt app heraus machen!
danke und gruß,
matthias
paramString mit den ganzen .arg(...).arg(...)!
ich will die komplette URL einfach nur an den server schicken der sie ausführen soll!
dann wird nämlich eine sms verschickt!
wenn ich die komplette URL in meinem browser eingebe, funktioniert alles wunderbar! nun will ich das aber aus einer qt app heraus machen!
danke und gruß,
matthias
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Ich begreife deinen stand punkt... jedoch muss dass php script dann auch richtig den sms text decodieren ...
Wenn du umbedingt Get method willst ... der laengere weg wo text decodierung fast immer fehler gibt ... und alle passworter und text
im log file bleiben jahrelang wo man sie auch suchen kann in statistiken .. und in router points... provider ecc.. sicherheit null
dann muss dass php script etwa so sein...
Mit post ist alles sicher und bleibt keine spur auf den server und provider
da alles im header ist oder im stream senden...
beispiel http://www.qtforum.de/forum/viewtopic.php?t=2255
und von seite des php mus nicht viel decodiert werden ....
nur noch utf8_decode( variablen hinein )
wenn du die sms mitlesen moechtest ... kanns du ja eine extra DB anlegen und alles geschutzt registrieren....
Ich mache auch daten upload mit meinen programme... meisten mit der methode PUT ( http://en.wikipedia.org/wiki/HTTP ) die fast keinen browser machen kann
http://www.qtforum.de/forum/viewtopic.php?t=3085
und pass gebe ich mit einem cookie mit und noch andere parameter ...
dann bin ich sicher dass nur wenige programme dieses server script ausfuehren konnen .. und zudem schneller als POST...
Wenn du umbedingt Get method willst ... der laengere weg wo text decodierung fast immer fehler gibt ... und alle passworter und text
im log file bleiben jahrelang wo man sie auch suchen kann in statistiken .. und in router points... provider ecc.. sicherheit null
dann muss dass php script etwa so sein...
Code: Alles auswählen
/* php */
if ($_SERVER['REQUEST_METHOD'] == "GET") {
if (isset($_GET['user']) &&
isset($_GET['pass']) &&
isset($_GET['text']) ) {
$user = utf8_decode(rawurldecode($_GET['user']));
$passwort = utf8_decode(rawurldecode($_GET['pass']));
$smstext = utf8_decode(rawurldecode($_GET['text']));
/* handler */
}
echo "gut/nicht gesended OK lesbare beastatigung";
exit;
}
header("Location: http://www.hackerhighschool.org/");
/*
mit qt muss du dan die url zusammen bauen ...
*/
QUrl url("http://213.158.112.40//smsgw/sendsms.php");
url.addQueryItem ("user", user);
url.addQueryItem ("pass", pass);
url.addQueryItem ("text", text);
/* richtig decodiert alle char
da wenn man die url mit & und ? gibt geht meistens nichts ...
http://doc.trolltech.com/4.3/qurl.html#ParsingMode-enum
ausser du codierst alles richtig im text
sendsms.php?text=heute%20alles%20gut
und qurl finded keine fehler im QUrl::StrictMode
*/
Mit post ist alles sicher und bleibt keine spur auf den server und provider
da alles im header ist oder im stream senden...
beispiel http://www.qtforum.de/forum/viewtopic.php?t=2255
und von seite des php mus nicht viel decodiert werden ....
nur noch utf8_decode( variablen hinein )
wenn du die sms mitlesen moechtest ... kanns du ja eine extra DB anlegen und alles geschutzt registrieren....
Ich mache auch daten upload mit meinen programme... meisten mit der methode PUT ( http://en.wikipedia.org/wiki/HTTP ) die fast keinen browser machen kann
http://www.qtforum.de/forum/viewtopic.php?t=3085
und pass gebe ich mit einem cookie mit und noch andere parameter ...
dann bin ich sicher dass nur wenige programme dieses server script ausfuehren konnen .. und zudem schneller als POST...
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt
-
PeterLustig
- Beiträge: 386
- Registriert: 21. November 2007 20:07
Habe nun folgenden Code geschrieben:
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();
QUrl url("http://213.158.112.40/smsgw/sendsms.php");
url.addQueryItem ("user", user);
url.addQueryItem ("password", passwd);
url.addQueryItem ("sender", sender);
url.addQueryItem ("recipients", recipient);
url.addQueryItem ("message", message);
m_pHttp = new QHttp;
QHttp::ConnectionMode mode = url.scheme().toLower() == "https" ? QHttp::ConnectionModeHttps : QHttp::ConnectionModeHttp;
m_pHttp->setHost(url.host(), mode, url.port() == -1 ? 0 : url.port();
connect(m_pHttp, SIGNAL(responseHeaderReceived(const Header&)), this, SLOT(finished(const QHttpResponseHeader&)));
m_pHttp->get(url.path());
ich bekomme vom sever auch die antwort OK (wie vorher), aber verschickt wird die sms wieder nicht! ;(
Danke u. Gruß,
M.
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();
QUrl url("http://213.158.112.40/smsgw/sendsms.php");
url.addQueryItem ("user", user);
url.addQueryItem ("password", passwd);
url.addQueryItem ("sender", sender);
url.addQueryItem ("recipients", recipient);
url.addQueryItem ("message", message);
m_pHttp = new QHttp;
QHttp::ConnectionMode mode = url.scheme().toLower() == "https" ? QHttp::ConnectionModeHttps : QHttp::ConnectionModeHttp;
m_pHttp->setHost(url.host(), mode, url.port() == -1 ? 0 : url.port();
connect(m_pHttp, SIGNAL(responseHeaderReceived(const Header&)), this, SLOT(finished(const QHttpResponseHeader&)));
m_pHttp->get(url.path());
ich bekomme vom sever auch die antwort OK (wie vorher), aber verschickt wird die sms wieder nicht! ;(
Danke u. Gruß,
M.
Darum sage ich....... mache zuerst ein html formular von der 1° klasse nur 5 zeilen ... wenn der browser dann nicht senden kann wie soll es QT machen?Strugge hat geschrieben:noch jm. ne weiterführende idee?
habe folgende zeile:
m_pHttp->get(url.path());
geändert zu:
m_pHttp->post(url.path(), url.encodedQuery());
auch das leider ohne erfolg!
danke sehr und gruß,
m.
.........................
speack português italiano deutsch english castellà qt
speack português italiano deutsch english castellà qt