httpapi.cc 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include "httpapi.h"
  2. #include "qdebug.h"
  3. #include <QJsonArray>
  4. #include <QJsonObject>
  5. #include <QJsonDocument>
  6. HttpAPI::HttpAPI()
  7. {
  8. }
  9. HttpAPI::~HttpAPI()
  10. {
  11. }
  12. void HttpAPI::requestFinished(QNetworkReply* reply, const QByteArray data, const int statusCode)
  13. {
  14. if (statusCode == 200) {
  15. QJsonParseError jsonError;
  16. QString str = data;
  17. qDebug()<<str;
  18. QJsonObject json = QstringToJson(str);
  19. this->checkCallback(true, json);
  20. return;
  21. }
  22. QJsonObject games;
  23. this->checkCallback(false, games);
  24. }
  25. void HttpAPI::getRequest(QString url, std::function<void(bool, QJsonObject)> callback)
  26. {
  27. this->checkCallback = callback;
  28. if (url.startsWith("http")) {
  29. qDebug()<<"start request..."<<url;
  30. get(url);
  31. } else {
  32. qDebug()<<"start request..."<<SERVER_URL + url;
  33. get(SERVER_URL + url);
  34. }
  35. }
  36. QJsonObject HttpAPI::QstringToJson(QString jsonString)
  37. {
  38. QJsonDocument jsonDocument = QJsonDocument::fromJson(jsonString.toUtf8().data());
  39. if(jsonDocument.isNull())
  40. {
  41. qDebug()<< "String NULL"<< jsonString.toUtf8().data();
  42. } else {
  43. qDebug() << "json document is not null";
  44. }
  45. QJsonObject jsonObject = jsonDocument.object();
  46. QString code = jsonObject.value("code").toString();
  47. qDebug() << code <<" == code" <<endl;
  48. return jsonObject;
  49. }
  50. QString HttpAPI::JsonToQstring(QJsonObject jsonObject)
  51. {
  52. return QString(QJsonDocument(jsonObject).toJson());
  53. }