baseapi.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "baseapi.h"
  2. BaseAPI::BaseAPI()
  3. {
  4. httpRequest.setRawHeader("Accept", API_ACCEPT);
  5. httpRequest.setRawHeader("User-Agent", API_USER_AGENT);
  6. httpRequest.setRawHeader("X-XXX-API-Key", API_KEY);
  7. httpRequest.setRawHeader("X-XXX-API-Secret", API_SECRET);
  8. httpRequest.setRawHeader("Accept-Encoding", "gzip, deflate");
  9. httpRequest.setRawHeader("Content-Type", "application/json");
  10. settings = new QSettings("XXX");
  11. QString id = settings->value(SETTING_ACCOUNT_ID, "seyason").toString();
  12. QString token = settings->value(SETTING_ACCOUNT_TOKEN, "123456").toString();
  13. if(!id.isEmpty()) {
  14. httpRequest.setRawHeader("X-XXX-User-ID", id.toStdString().c_str());
  15. }
  16. if (!token.isEmpty()) {
  17. httpRequest.setRawHeader("X-XXX-User-Token", token.toStdString().c_str());
  18. }
  19. qDebug() << "BaseAPI...id:" << id << " token:" + token;
  20. QObject::connect(&networkAccessManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(serviceRequestFinished(QNetworkReply*)));
  21. }
  22. BaseAPI::~BaseAPI()
  23. {
  24. networkAccessManager.disconnect();
  25. if (settings){
  26. delete settings;
  27. settings = nullptr;
  28. }
  29. }
  30. void BaseAPI::get(const QString url)
  31. {
  32. httpRequest.setUrl(QUrl(url));
  33. qDebug() << "http request "<<httpRequest.url();
  34. networkAccessManager.get(httpRequest);
  35. }
  36. void BaseAPI::post(const QString url, const QByteArray &data)
  37. {
  38. httpRequest.setUrl(QUrl(url));
  39. networkAccessManager.post(httpRequest, data);
  40. }
  41. void BaseAPI::serviceRequestFinished(QNetworkReply *reply)
  42. {
  43. int statusCode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();
  44. qDebug() << "BaseAPI...serviceRequestFinished...statusCode:" << statusCode;
  45. if(reply->error() == QNetworkReply::NoError) {
  46. requestFinished(reply, reply->readAll(), statusCode);
  47. } else {
  48. requestFinished(reply, "", statusCode);
  49. }
  50. // At the end of that slot, we won't need it anymore
  51. reply->deleteLater();
  52. }