From: tiina.kivilinna-korhola@windowslive.com Date: Tue, 9 Mar 2010 08:44:03 +0000 (+0200) Subject: Added requesting results from server. X-Git-Tag: v0.1~69^2~3 X-Git-Url: http://git.maemo.org/git/?p=speedfreak;a=commitdiff_plain;h=9a81bc8fe5cb944592f815192817c4056cb168d9;hp=-c Added requesting results from server. --- 9a81bc8fe5cb944592f815192817c4056cb168d9 diff --git a/Client/carmainwindow.cpp b/Client/carmainwindow.cpp index 47859e1..8464b27 100644 --- a/Client/carmainwindow.cpp +++ b/Client/carmainwindow.cpp @@ -252,7 +252,8 @@ void CarMainWindow::on_registratePushButton_clicked() */ void CarMainWindow::on_buttonTopRefresh_clicked() { - setCategoryCompoBox(); + //setCategoryCompoBox(); + requestTopList(); } /** @@ -296,10 +297,9 @@ void CarMainWindow::registrate() qDebug() << this->myRegistration->getUserName() << "+" << this->myRegistration->getPassword() << "+" << this->myRegistration->getEmail(); QBuffer *regbuffer = new QBuffer(); - QNetworkReply *currentDownload; - QUrl qurl("http//:api.speedfreak-app.com/register"); + QUrl qurl("http://api.speedfreak-app.com/register"); QNetworkRequest request(qurl); //write also to a file during development, : @@ -317,6 +317,12 @@ void CarMainWindow::registrate() //ackFromServer function gets called when HTTP request is completed connect(currentDownload, SIGNAL(finished()),SLOT(ackOfRegistration())); + manager->post(request, ("data=" + regbuffer->data())); + + //ackOfRegistration function gets called when HTTP request is completed + //connect(currentDownload, SIGNAL(finished()), this, SLOT(ackOfRegistration())); + connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(ackOfRegistration(QNetworkReply*))); + connect(manager,SIGNAL(sslErrors(QNetworkReply*)),this,SLOT(errorFromServer(QNetworkReply*))); } /** @@ -330,52 +336,117 @@ void CarMainWindow::sendXml() QBuffer *xmlbuffer = new QBuffer(); QNetworkReply *currentDownload; + QString category_name = "acceleration-0-100"; //replace with real value from category list + QString credentials = this->myRegistration->getUserName() + ":" + this->myRegistration->getPassword(); credentials = "Basic " + credentials.toAscii().toBase64(); - QUrl qurl("http//:api.speedfreak-app.com/update/acceleration-0-40"); + QUrl qurl("http://api.speedfreak-app.com/update/category_name"); QNetworkRequest request(qurl); request.setRawHeader(QByteArray("Authorization"),credentials.toAscii()); xmlwriter->writeResult(xmlbuffer); - currentDownload = manager->post(request, ("data=" + xmlbuffer->data())); + //currentDownload = manager->post(request, ("data=" + xmlbuffer->data())); + manager->post(request, ("data=" + xmlbuffer->data())); //QString data("abcdefg"); //testing //currentDownload = manager->post(request,"data=" + QUrl::toPercentEncoding(data)); //testing + //ackOfResult function gets called when HTTP request is completed + //connect(currentDownload, SIGNAL(finished()), this, SLOT(ackOfResult())); + connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(ackOfResult(QNetworkReply*))); + connect(manager,SIGNAL(sslErrors(QNetworkReply*)),this,SLOT(errorFromServer(QNetworkReply*))); - //ackFromServer function gets called when HTTP request is completed - connect(currentDownload, SIGNAL(finished()),SLOT(ackOfResult())); +} + +/** + *@brief Sends request to the server for a top list with authentication information in the header. + *@todo Write error handling. + *@todo Replace with real value from category list and limit + */ +void CarMainWindow::requestTopList() +{ + qDebug() << "_registrate" ; + + QString category_name = "acceleration-0-100"; //replace with real value from category list/top window + int limit = 5; + //QNetworkReply *currentDownload; + QString credentials = this->myRegistration->getUserName() + ":" + this->myRegistration->getPassword(); + credentials = "Basic " + credentials.toAscii().toBase64(); + + QUrl qurl("http://api.speedfreak-app.com/results/category_name/limit"); + QNetworkRequest request(qurl); + + request.setRawHeader(QByteArray("Authorization"),credentials.toAscii()); + + //currentDownload = manager->post(request, ("data=" )); + manager->post(request, ("data=" )); + + //ackOfResult function gets called when HTTP request is completed + //connect(currentDownload, SIGNAL(error()),SLOT(errorFromServer())); + connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(networkResponse(QNetworkReply*))); + connect(manager,SIGNAL(sslErrors(QNetworkReply*)),this,SLOT(errorFromServer(QNetworkReply*))); } /** *@brief React to servers responce after result has been sent. *@todo Implement function and write error handling. */ -void CarMainWindow::ackOfResult() +void CarMainWindow::ackOfResult(QNetworkReply* reply) { - qDebug() << "Server acknowledged posting of result"; + qDebug() << "_ackOfResult"; + QNetworkReply::NetworkError errorcode; + errorcode = reply->error(); + if(errorcode != 0) { + qDebug() << errorcode << reply->errorString(); + } + else { + qDebug() << errorcode; + } } /** *@brief React to servers responce after registration has been sent. *@todo Implement function and write error handling. */ - -void CarMainWindow::ackOfRegistration() +void CarMainWindow::ackOfRegistration(QNetworkReply* reply) { - qDebug() << "Server acknowledged registration"; + qDebug() << "_ackOfRegistration"; + qDebug() << reply->readAll(); + QNetworkReply::NetworkError errorcode; + errorcode = reply->error(); + if(errorcode != 0) { + qDebug() << errorcode << reply->errorString(); + } + else { + qDebug() << errorcode; + } } + +void CarMainWindow::errorFromServer(QNetworkReply* reply) +{ + qDebug() << "_errorFromServer"; + QNetworkReply::NetworkError errorcode; + + errorcode = reply->error(); + if(errorcode != 0) { + qDebug() << errorcode; + } + else { + qDebug() << errorcode; + } + +} + /** *@brief Just for development, for the real button is not shown until *measurin started and there are results. *@todo Implement with real code and yet leave sendXml in the bottom in use. */ - void CarMainWindow::on_manualStartButton_clicked() { sendXml(); diff --git a/Client/carmainwindow.h b/Client/carmainwindow.h index cc0904e..dcf047e 100644 --- a/Client/carmainwindow.h +++ b/Client/carmainwindow.h @@ -102,8 +102,10 @@ private slots: void on_autoStartButton_clicked(); //Start-tab view: button void registrate(); void sendXml(); - void ackOfResult(); - void ackOfRegistration(); + void requestTopList(); + void ackOfResult(QNetworkReply* reply); + void ackOfRegistration(QNetworkReply* reply); + void errorFromServer(QNetworkReply* reply); void after_timeout(); }; diff --git a/Client/xmlreader.cpp b/Client/xmlreader.cpp index f953418..772b28c 100644 --- a/Client/xmlreader.cpp +++ b/Client/xmlreader.cpp @@ -35,7 +35,8 @@ XmlReader::~XmlReader() /** *This function is used to parsing xml file. */ -void XmlReader::xmlRead(QIODevice *device) +//void XmlReader::xmlRead(QIODevice *device) +void XmlReader::xmlRead(QNetworkReply* device) { qDebug() << "_xmlRead"; @@ -118,7 +119,7 @@ void XmlReader::xmlShow() return; } - xmlRead(&file); + //xmlRead(&file); file.close(); } diff --git a/Client/xmlreader.h b/Client/xmlreader.h index 62ab600..ec984ca 100644 --- a/Client/xmlreader.h +++ b/Client/xmlreader.h @@ -12,6 +12,7 @@ #include #include +#include class XmlReader : public QObject { @@ -39,7 +40,8 @@ private: QString value; public slots: - void xmlRead(QIODevice* device); + //void xmlRead(QIODevice* device); + void xmlRead(QNetworkReply* device); void xmlShow(); };