Commit 1a60825a4ee913b05ee3deb3e3b6a7428f8d3ab7

Authored by Eric Menezes Noronha
1 parent 0aa5c029
Exists in master

Inclusão do método comm, com retorno string.

-Inclusao do teste da função comm, verificando se o retorno não é vazio.
cacic-teste/cacic-teste.pro
... ... @@ -5,6 +5,7 @@
5 5 #-------------------------------------------------
6 6  
7 7 QT += testlib
  8 +QT += network
8 9 TARGET = cacic-teste
9 10 CONFIG -= app_bundle
10 11  
... ...
cacic-teste/testcacic.cpp
... ... @@ -10,11 +10,17 @@ CTestCacic::CTestCacic(QObject *parent) :
10 10 {
11 11 }
12 12  
13   -void CTestCacic::testGetStatus200()
  13 +void CTestCacic::testCommStatus()
14 14 {
15   - CacicComm a;
  15 + QVERIFY(a.commStatus(QString ("http://teste.cacic.cc")));
  16 +}
16 17  
17   - QVERIFY(a.commStatus("") == 200);
  18 +void CTestCacic::testComm()
  19 +{
  20 + if (a.commStatus("http://teste.cacic.cc"))
  21 + QVERIFY(a.comm("http://teste.cacic.cc/ws/get/test") != QString(""));
  22 + else
  23 + QSKIP("Teste de comunicação negativo!");
18 24 }
19 25  
20 26  
... ...
cacic-teste/testcacic.h
... ... @@ -9,12 +9,15 @@ class CTestCacic : public QObject
9 9 public:
10 10 explicit CTestCacic(QObject *parent = 0);
11 11  
  12 + CacicComm a;
  13 +
12 14 signals:
13 15  
14 16 public slots:
15 17  
16 18 private slots:
17   - void testGetStatus200();
  19 + void testCommStatus();
  20 + void testComm();
18 21 };
19 22  
20 23 #endif // TESTINSTALLCACIC_H
... ...
src/CACIC_comm.h
... ... @@ -8,41 +8,82 @@
8 8 #include <QtNetwork/QNetworkAccessManager>
9 9 #include <QtNetwork/QNetworkRequest>
10 10 #include <QtNetwork/QNetworkReply>
11   -#include <QUrl>
  11 +#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
  12 +# include <QUrlQuery>
  13 +#endif
12 14  
13 15 class CacicComm {
  16 +
14 17 public:
  18 + QString comm(QString urlGerente){
  19 + QString retorno = "0";
  20 + QByteArray data;
  21 + QUrlQuery params;
  22 +
  23 + params.addQueryItem("OperatingSystem","rG/HcIDVTZ3pPKCf[[MAIS]]I6aigUb7OMeij3FfC7qNaznk0rBRYb6q6kSK3eNfjgptS8BfwW5yJqCvD2ai7xlw9I6P21j6cvQUqlHmAJpCbfwR13urdRE9AhjfokMcPrH6R1/zXPGMHveLRRgKLcqWu2X96rmoQQdRq9EW1SXmYUAx1dCV[[MAIS]]3Ha61XBw5pq58q35zH8Gjt998rTi3ecV8ShXXevqyK[[MAIS]]W07xpgTjbbd6Fbs/35gPfdRRgMNFjq7Gq[[MAIS]]llFgYMJ6UcEhw8f0ZLQo2oL/eRW/CNyeBW6wG0hIo6EIdpi/Ht0/95Uwn2Og[[MAIS]]2UPXsmKKuTMeGwUvPdbEfexlinUO0[[MAIS]]j9qIa2dpjtl0Y5Fyk1Bvw2ZYRTXwgJpUHsBboWmtTFpgX3wSGOWMipE80K8ktRTVYOp[[MAIS]]4qS/SzKWXpfCuZoCncfwE0lCEoreTH[[MAIS]]MLrTkHJP2oqYMAyFyQcjC0UGr3BQGa2edSNXjG7jrTdddga/SODUiF94jgh/QBwhiZby34b__CRYPTED__");
  24 + params.addQueryItem("ComputerSystem","P198PVwtz5F5CfZPSUrzuaQA/QG1sTnwzl/rBnj8M7y5MglANGodG5LLD4q7oY809HuDR4g5tL64lZRBKvKPmEgWd9iAZKvT4UAm9XWN3nKKLGaznCaJohmntNGqrJP1Zd9riTHGu10mPbg/Uh3TCbBHVOICvu5sDlINlCR6A3[[MAIS]]a55RhfKNidvr5uX0kozCxr5t2DyOb5oPocEGyJKyHLQ==__CRYPTED__");
  25 + params.addQueryItem("cs_cipher","1");
  26 + params.addQueryItem("cs_debug","0");
  27 + params.addQueryItem("cs_compress","0");
  28 + params.addQueryItem("HTTP_USER_AGENT","YwpgjzZ86/eCsjvOki1KkQ==__CRYPTED__");
  29 + params.addQueryItem("ModuleFolderName","8PT6U445MPNr3S7WHFa20ge/8NJSspSYE/UL3zf[[MAIS]]wkEfNZ7p1B/2o6i89gTZ44Ok__CRYPTED__");
  30 + params.addQueryItem("ModuleProgramName","wshPlZWvLPhbUEQFQ1aQmA==__CRYPTED__");
  31 + params.addQueryItem("NetworkAdapterConfiguration","E9aKtVz/OSmGv7v1xW4FwaFukOob3qQ/HFDIz916K3ys82qfX9vBDz[[MAIS]]M2cdoYedhNkXt[[MAIS]]UVb10nD[[MAIS]]tOfbn7mlOlTDoGzUl9CgdPCsb[[MAIS]]Qa4wzuCrMw0BcCuaKfr62E3b8vh6Ug4JJbOgBo3ohG3x5O7Ap0D94GKtAWjMuTXRBbhGxPrRS4M6AhzvaN5P8pWd9FikrCLWuMs4ebnRlftef3RmVKScBDQ5zmK6sKxYNmX[[MAIS]]kKn/Gi2[[MAIS]]HftZ7HD9JLvZBpYhp4yjqShblQ67d6PlWgrRWXxwDseIiJe3NlF70zrCPBBelkeAhVDXMXnsYtLms3ElsLzxa3c5vpWzTfgyE[[MAIS]]hvALy4ivew7zaxEwrg2KY1T7GOSWZ7vljIvbhVZJgtzbnYiulFjJTtm5W4uJMKLuUJNzB0rxMkzToIE9/kDmeO2OKiwFbIfbe2Wdq0VpllOkjKtj9WM676iBSpYAXG0MsmLMj9CZ/sNi06hGF[[MAIS]]rXxiOSk66M0Hq[[MAIS]]OeUBh4z3Ra6f9yPJn0K9hIQyT[[MAIS]]Dr/QW/QdJIOkLTW8ZyyAF4DW9ojiTlUdySvB5EB1jyZ5nNTpzyE38qIdg7uM1tdWdm9FZGYxMdHwi1tS2dBeIWkDfWEjih01xiVt2dmdRgo0zIZvmmYDJ9LhCU3XPDlwdeQ8[[MAIS]]F7fnxDfxGqZQjZJ[[MAIS]]Y/Q8bdLpgbhcd3gt3SzjMLE0M[[MAIS]]hTmHG1KP2CzCibZ7grFAN3Y3jSPjmEj5Fzs26tdhdjNzSIt1FCueea8P2c4NmxPYkJCg0D1mgNrkH3L5svsO[[MAIS]]6YYrl3df4s[[MAIS]]fcK/to9s/pnkKfBKrAPF6Z4s2WPsALUPBDS5ty7RC2vqXRvH6hPR4o7xhXzQOQ/1xytr/RoEWEVeZ2wgHVVbbtFsALul/IDc7B45wmwxBx9iZHVwpQJVlNZZUBtwKqKhnXz5pM[[MAIS]]7yUAkfhMcO09pPd5kB2MBdRJs[[MAIS]]2FIk0GRUw05IHkc1rZEX5Ow==__CRYPTED__");
  32 + params.addQueryItem("PHP_AUTH_PW","Yot8BeM9lOh431SB7dYQXw==__CRYPTED__");
  33 + params.addQueryItem("PHP_AUTH_USER","Dcr8b5IfZOJjt6qyH5dGyw==__CRYPTED__");
  34 + params.addQueryItem("te_so","2.5.1.1.256.32");
  35 + params.addQueryItem("te_versao_cacic","2.8.1.7");
  36 + params.addQueryItem("te_versao_gercols","2.8.1.6");
  37 + data.append(params.toString());
  38 +
  39 + // cria um event-loop temporario
  40 + QEventLoop eventLoop;
  41 + // "quit()" o event-loop, when the network request "finished()"
  42 + QNetworkAccessManager mgr;
  43 + QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
  44 + // a requisição HTTP
15 45  
16   -QString comm(QString urlGerente, QString request, QString localFolderName){
17   - // QString retorno = '0',
18   - // gerColsInfPath = localFolderName + "/gercols.inf",
19   - // chksisInfPath = localFolderName + "/chksis.inf";
20   - //implementar
21   - return "";
  46 + QUrl url = urlGerente;
  47 + QNetworkRequest req(url);
  48 + req.setHeader(QNetworkRequest::UserAgentHeader, "Cacic Agente");
  49 + QNetworkReply *reply = mgr.post(req, data);
  50 + eventLoop.exec(); // sai do looping chamando o "finished()".
  51 + QVariant codigoStatus = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute );
  52 + retorno = reply->readAll();
  53 + if (codigoStatus.isValid()){
  54 + qDebug() << "Status:" << codigoStatus.toInt() << retorno;
  55 + return retorno;
  56 + }else{
  57 + QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
  58 +// qDebug() << "Error:" << reason;
  59 + return retorno;
  60 + }
22 61 }
23 62  
24   - bool commStatus200(){
  63 + bool commStatus(QString path){
25 64 // cria um event-loop temporario
26 65 QEventLoop eventLoop;
27 66 // "quit()" o event-loop, when the network request "finished()"
28 67 QNetworkAccessManager mgr;
29 68 QObject::connect(&mgr, SIGNAL(finished(QNetworkReply*)), &eventLoop, SLOT(quit()));
30 69 // a requisição HTTP
31   - QNetworkRequest req( QUrl( QString("http://www.google.com.br") ) );
  70 + QUrl url = path;
  71 + QNetworkRequest req( url );
32 72 QNetworkReply *reply = mgr.get(req);
33 73 eventLoop.exec(); // sai do looping chamando o "finished()".
34 74 QVariant codigoStatus = reply->attribute( QNetworkRequest::HttpStatusCodeAttribute );
35 75 QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
36 76 if (codigoStatus.isValid()){
37   - qDebug() << "Status:" << codigoStatus.toInt() << reason;
  77 +// qDebug() << "Status:" << codigoStatus.toInt() << reason;
38 78 return true;
39 79 }else{
40 80 QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
41   - qDebug() << "Error: Off" << reason;
  81 +// qDebug() << "Error:" << reason;
42 82 return false;
43 83 }
44 84 }
45   -
  85 +signals:
  86 + void finished(QNetworkReply* reply);
46 87 };
47 88  
48 89 #endif // CACIC_COMM_H
... ...