synchttp.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. #include "synchttp.h"
  2. SyncHttp::SyncHttp(QWidget* parent)
  3. : QWidget(parent)
  4. {
  5. }
  6. bool SyncHttp::downloadFile(QString url, QString path)
  7. {
  8. return true;
  9. }
  10. void SyncHttp::setIpAndPort(const QString& ip, int port, QString protocol)
  11. {
  12. m_baseUrl = QString("%1://%2:%3/").arg(protocol).arg(ip).arg(port);
  13. qDebug() << m_baseUrl;
  14. }
  15. int SyncHttp::postJsonData(const QString& params, QByteArray& data, QByteArray& ret)
  16. {
  17. QNetworkAccessManager* manager = new QNetworkAccessManager();
  18. QNetworkRequest requet;
  19. qDebug() << m_baseUrl + params;
  20. requet.setUrl(QUrl(m_baseUrl + params));
  21. requet.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
  22. QNetworkReply* reply = manager->post(requet, data);
  23. QEventLoop loop;
  24. connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
  25. loop.exec();
  26. ret = reply->readAll();
  27. int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  28. delete reply;
  29. delete manager;
  30. return code;
  31. }
  32. int SyncHttp::postJsonData2(const QString& url, QByteArray& data, QByteArray& ret)
  33. {
  34. QNetworkAccessManager* manager = new QNetworkAccessManager();
  35. QNetworkRequest requet;
  36. requet.setUrl(QUrl(url));
  37. requet.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
  38. QNetworkReply* reply = manager->post(requet, data);
  39. QEventLoop loop;
  40. connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
  41. loop.exec();
  42. ret = reply->readAll();
  43. int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  44. delete reply;
  45. delete manager;
  46. return code;
  47. }
  48. int SyncHttp::getJsonData(const QString& params, QByteArray& ret)
  49. {
  50. QNetworkAccessManager* manager = new QNetworkAccessManager();
  51. QNetworkRequest requet;
  52. requet.setUrl(QUrl(m_baseUrl + params));
  53. requet.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
  54. QNetworkReply* reply = manager->get(requet);
  55. QEventLoop loop;
  56. connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
  57. loop.exec();
  58. ret = reply->readAll();
  59. int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  60. delete reply;
  61. delete manager;
  62. return code;
  63. }
  64. int SyncHttp::getJsonData(const QString& url, const QString& params, QByteArray& ret)
  65. {
  66. QNetworkAccessManager* manager = new QNetworkAccessManager();
  67. QNetworkRequest requet;
  68. requet.setUrl(QUrl(url + params));
  69. requet.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
  70. QNetworkReply* reply = manager->get(requet);
  71. QEventLoop loop;
  72. connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
  73. loop.exec();
  74. ret = reply->readAll();
  75. int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  76. delete reply;
  77. delete manager;
  78. return code;
  79. }
  80. int SyncHttp::getHtmlData(const QString& url, QByteArray& ret)
  81. {
  82. QNetworkAccessManager* manager = new QNetworkAccessManager();
  83. QNetworkRequest requet;
  84. requet.setUrl(QUrl(url));
  85. QNetworkReply* reply = manager->get(requet);
  86. QEventLoop loop;
  87. connect(reply, &QNetworkReply::finished, &loop, &QEventLoop::quit);
  88. loop.exec();
  89. int code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  90. if (code == 200)
  91. {
  92. ret = reply->readAll();
  93. }
  94. delete reply;
  95. delete manager;
  96. return code;
  97. }