00001
00002
00003
00004
00005
00006
00007 #include "Logger.h"
00008 #include "NetworkClient.h"
00009 #include <QNetworkReply>
00010 #include <QNetworkRequest>
00011
00012 const QString SERVER_URL ("http://engaugedigitizer.net/receive_crash_report.php");
00013
00014 NetworkClient::NetworkClient (QObject *parent) :
00015 QNetworkAccessManager (parent)
00016 {
00017 connect (this, SIGNAL (finished (QNetworkReply *)), this, SLOT (slotFinished (QNetworkReply *)));
00018 }
00019
00020 QString NetworkClient::cleanXml (const QString &before)
00021 {
00022 LOG4CPP_INFO_S ((*mainCat)) << "NetworkClient::cleanXml";
00023
00024
00025
00026
00027
00028 QString after;
00029 for (int i = 0; i < before.size(); i++) {
00030
00031 if (before.at (i).unicode() < 128) {
00032
00033 after += before.at (i);
00034 }
00035 }
00036
00037 return after;
00038 }
00039
00040 void NetworkClient::slotFinished (QNetworkReply *reply)
00041 {
00042 reply->deleteLater();
00043 }
00044
00045 void NetworkClient::uploadErrorReport (const QString &report)
00046 {
00047 QString reportClean = cleanXml (report);
00048
00049
00050
00051 QByteArray postData = reportClean.toLatin1();
00052
00053 QNetworkRequest request (SERVER_URL);
00054 request.setHeader (QNetworkRequest::ContentTypeHeader,
00055 QVariant (QString ("text/xml")));
00056 request.setHeader (QNetworkRequest::ContentLengthHeader,
00057 QVariant (qulonglong (postData.size())));
00058
00059 post(request,
00060 postData);
00061 }