Commit 1a60825a4ee913b05ee3deb3e3b6a7428f8d3ab7
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.
Showing
4 changed files
with
67 additions
and
16 deletions
Show diff stats
cacic-teste/cacic-teste.pro
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 | ... | ... |